我有一个包含以下字段的地方的集合:
{
"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
}
}]);
我收到此错误:
"errmsg" : "exception: geoNear command failed: { ok: 0.0, errmsg: \"no geo indices for geoNear\" }"
我认为问题在于" loc"字段嵌入在位置文档中,我不能告诉" mongo搜索附近" location.loc"。
答案 0 :(得分:0)
解决方案最终是不在嵌入式位置文档中包含GeoJsonPoint。我刚用过" loc"与name和MongoDB相同的方式"理解"文档中有坐标。