Mongodb 地理近缘猫鼬与二维索引

Mongodb 地理近缘猫鼬与二维索引,mongodb,mongoose,Mongodb,Mongoose,我正在执行这个查询 { "$geoNear":{ "uniqueDocs":true, "includeLocs":true, "near":[ 8.759131, 40.272393 ], "spherical":false, "distanceField":"d", "maxDistance":0.09692224622030236, "query":{ }, "num":3 } } 在此模型上: var ridePathSc

我正在执行这个查询

{
 "$geoNear":{
  "uniqueDocs":true,
  "includeLocs":true,
  "near":[
     8.759131,
     40.272393
  ],
  "spherical":false,
  "distanceField":"d",
  "maxDistance":0.09692224622030236,
  "query":{
  },
  "num":3
 }
}
在此模型上:

var ridePathSchema = new Schema({
  ...
  loc: [Number],
  ...
});
ridePathSchema.index({
 loc: "2d"
});
我得到:

Unhandled rejection reason: MongoError: 
can't find any special indices: 2d (needs index), 2dsphere (needs index)
有趣的是,就在这个查询之前,我确实在同一个模型上执行了类似的查询,但是我对它进行了聚合,并且它工作了

我做错了什么

更新:

RidePaths.aggregate([query]) WORKS

RidePaths.find(query) CAN'T FIND INDEX

$geoNear应该作为一个或在聚合查询的第一阶段执行(如您所述)

无法将命令传递给mongooses find()方法。发出命令的唯一方法是通过驱动程序接口。有关如何操作的工作示例,请参见本要点:

请记住,驱动程序界面的结果不会是mongoose文档,因为mongoose被绕过