执行以下聚合
时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,
})
任何想法我在做什么?
答案 0 :(得分:3)
问题可能是:
Activities
中的索引。Activities
在Mongo shell中运行此代码以查看所有索引
db.Activities.getIndexes()
答案 1 :(得分:0)
我遇到了同样的问题,并找到了一个不明显的解决方案。
这是索引:
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 }
}
);
所以我得到了"因为两件事情而无法获得查询执行者" :
答案 2 :(得分:0)
也许你有一个复合索引,一个2sphere和另一种类型的索引,比如:
{
"name: 1,
"location" : "2dsphere"
}