1
我得到了一些geoJSON文件,我把它放到MongoDB庫中。 geoJSON模式是標準化的,所以我希望不會改變它。 geoJSON文件代表由一組區域(多邊形)定義的標記 標記可能包含多個多邊形 不同的標記可能包含相同的區域或多邊形。如何在geoJson中找到保存在MongoDB中的多邊形
的GeoJSON的文件是這樣的:
{
"_id": {
"$oid": "5570864ee4b08fb4e548beb6"
},
"type": "FeatureCollection",
"crs": {
"type": "name",
"properties": {
"name": "urn:ogc:def:crs:OGC:1.3:CRS84"
}
},
"features": [
{
"type": "Feature",
"properties": {
"ida": "2335",
"name": "myName",
...,
"surf_m2": 13432292
},
"geometry": {
"type": "MultiPolygon",
"coordinates": [
[
[
[
-1.366403393656118,
47.19539498257428
],
[
-1.357701323667323,
47.19374649592587
],
[
-1.357566935700819,
47.1932311120653
],
[
-1.357111040694128,
47.192966611925904
],
...
]
]
]
}
}
]
}
圖片我有許多文件是這樣的。
如何查詢shell中的mongoDB以查找基礎中可用的多邊形內的區域(通過名稱,ID或其他)。
我已經tryed這一點:
db.Collection.find({"features":{"$geoIntersects":{"$geometry":{"type":"Point", "coordinates":[-1.3545706,47.166627 ]}}}})
或者
db.runCommand({ geoNear : "Collection" ,near : { type : "Point",coordinates:[-1.3545706,47.166627]},spherical : true }
我的問題是,我是不是能夠達到的座標,因爲它不是在根級別的直接訪問,但在功能.geometry.coordinates。
幫助...
支持MongoDB的GeoJSON對象被列出和[在這裏解釋](http://docs.mongodb.org/manual/reference/geojson/)。基本上,您可以做的最好的事情是將其分解爲[GeomeryCollection](http://docs.mongodb.org/manual/reference/geojson/#geometrycollection)對象,因爲不支持FeaturesCollection。 –
@ user3561036,好的,你會這樣做運行時還是通過創建一個匹配更多查詢的新集合? – Anthony
由於查詢選項需要「索引」,因此不能「在運行時執行」。這意味着收集數據已經需要以該形式存儲。您可以使用支持的方式存儲它,並讓MongoDB完成工作,或者卸載到另一個服務來處理存儲的數據,在那裏執行「咕嚕工作」。我喜歡(合理)大型鐵數據庫服務器自己做出的咕嚕聲。 –