2016-09-02 12 views
0

私は以下のフィールドを持つ場所のためのコレクションを持っている:

{ 
"name":"AAAAA", 
. 
. 
"location" : { 
    "loc" : { 
     "type" : "Point", 
     "coordinates" : [ 
      25.381911, 
      37.109551 
     ] 
    } 
    . 
    . 
} 
} 

私はgeoNearで集約を使用したいと私は場所のフィールドを設定する方法を見つけることができません。このようなクエリの場合:

db.places.aggregate([ 
{ 
$geoNear: { 
    near: { type: "Point", coordinates: [ -73.99279 , 40.719296 ] }, 
    distanceField: "dist", 
    maxDistance: 2, 
    query: { 
      "categories.categoryList":"Cocktail Bar" 
     }, 
    includeLocs: "location.loc", 
    num: 5, 
    spherical: true 
} 

}]);私は、問題は「LOC」フィールドは、ロケーション文書に埋め込まれていると私は近い「location.loc」を検索するモンゴを「伝える」ことができないということだと思います

"errmsg" : "exception: geoNear command failed: { ok: 0.0, errmsg: \"no geo indices for geoNear\" }" 

は、私はこのエラーを取得します。

答えて

0

最終的には、埋め込まれたロケーションドキュメントにGeoJsonPointが含まれていないという問題がありました。私はちょうど名前と同じ方法で "loc"を使い、MongoDBはドキュメントに座標があることを "理解"しました。

関連する問題