我的地方集合中有以下几行。
{ "_id" : ObjectId("572b3892967c76c62b7f63e3"), "loc" : { "type" : "Point", "coordinates" : [ -73.97, 40.77 ] }, "name" : "Central Park", "category" : "Parks" }
{ "_id" : ObjectId("572b38ba967c76c62b7f63e4"), "loc" : { "type" : "Point", "coordinates" : [ -73.88, 40.78 ] }, "name" : "La Guardia Airport", "category" : "Airport" }
我无法执行以下查询
db.places.find({$nearSphere: {$geometry: { type: "Point", coordinates: [-73.92, 40.775]}, $minDistance: 10000, $maxDistance: 10}})
我收到以下错误: Error: error: { "$err" : "Can't canonicalize query: BadValue unknown top level operator: $nearSphere", "code" : 17287 }
请让我知道是什么问题。
在查询对象中,缺少“ loc”字段。而且,由于maxDistanace <minDistance,所以我认为您将minDistance和maxDistance声明为错误。
我认为您想要的查询是这样的:
db.places.find({loc:{$nearSphere: {$geometry: { type: "Point", coordinates: [-73.92, 40.775]}, $minDistance: 10, $maxDistance: 10000}}})
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句