2015-06-07 41 views
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。

幫助...

+0

支持MongoDB的GeoJSON對象被列出和[在這裏解釋](http://docs.mongodb.org/manual/reference/geojson/)。基本上,您可以做的最好的事情是將其分解爲[GeomeryCollection](http://docs.mongodb.org/manual/reference/geojson/#geometrycollection)對象,因爲不支持FeaturesCollection。 –

+0

@ user3561036,好的,你會這樣做運行時還是通過創建一個匹配更多查詢的新集合? – Anthony

+0

由於查詢選項需要「索引」,因此不能「在運行時執行」。這意味着收集數據已經需要以該形式存儲。您可以使用支持的方式存儲它,並讓MongoDB完成工作,或者卸載到另一個服務來處理存儲的數據,在那裏執行「咕嚕工作」。我喜歡(合理)大型鐵數據庫服務器自己做出的咕嚕聲。 –

回答

0

這裏是你如何能做到這運行時,由一個你想要的替代GPS位置。

db.CollectionName.find({"features.geometry":{"$geoIntersects":{"$geometry":{"type":"Point", "coordinates":[ -1.346784,47.141102]}}}}) 
相關問題