我正在 Mongo 中进行空间查询。我需要找到旧金山 10 英里范围内的所有场地。在命令行中,使用 $geoNear(有效)与 $near(无效)时,我得到了不同的结果。我需要使用 $near,因为我正在使用 Mongoose 并且它使用 $near。
$geoNear 有效。我运行这个命令:
db.runCommand({geoNear:"venues",near:[-122.418,37.775], maxDistance:10/69});
我得到按距离排序的结果,在 10 英里半径范围内。伟大的。
但后来我运行这个 $near 命令,我没有得到任何结果:
db.venues.find({loc: {$near: [-122.418,37.775] }, $maxDistance:10/69})
据我所知,它们是相同的命令。我错过了什么吗?如果我删除 $maxDistance,我确实会返回结果,并且它们按距离正确排序。但是,我也在 10 英里以外的地方得到结果。
db.venues.find({loc: {$near: [-122.418,37.77] }})