[英]MongoError: can't get query executor with geoNear Mongoose
[英]mongodb: can't get query executor when executing geoNear aggregate
執行以下聚合時
db.Activities.aggregate([
{
$geoNear: {
near: { coordinates: [ -73.99279 , 40.719296 ] },
distanceField: "location.calculated",
spherical: true,
}
}
])
我收到以下錯誤
uncaught exception: aggregate failed: {
"errmsg" : "exception: geoNear command failed: { ok: 0.0, errmsg: \"can't get query executor\" }",
"code" : 16604,
"ok" : 0
}
當我運行geoNear命令時,它工作正常。
db.runCommand( {
geoNear: "Activities" ,
near: [ -73.99279 , 40.719296 ],
spherical: true,
})
我在做什么想法?
問題可能是:
Activities
中缺少“2dsphere”索引。 Activities
有多個地理索引 在Mongo shell中運行此代碼以查看所有索引
db.Activities.getIndexes()
我有同樣的問題,並找到了一個不明顯的解決方案。
這是索引:
db.buildings.createIndex(
{
'Address.CityCode': 1,
'Rooms.Categories': 1,
'Address.Coords': '2dsphere'
},
{
background: true,
name: 'IX_Address.CityCode_Rooms.Category_Address.Coords_Published',
partialFilterExpression: { 'Rooms.Published': true }
}
);
所以我得到了“無法獲取查詢執行者”,因為有兩件事:
也許你有一個復合索引,一個2sphere和另一種類型的索引,如:
{
"name: 1,
"location" : "2dsphere"
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.