在执行以下聚合时

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()
    

    关于mongodb:执行geoNear聚合时无法获取查询执行程序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30240883/

    10-12 15:38