我在Mongo做空间查询。我需要找到旧金山10英里范围内的所有场地。从命令行开始,当使用$ geoNear(works)vs $ 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] }})
答案 0 :(得分:11)
你需要在{$ near} JSON文档中包含$ maxDistance:X - 你在外面。
更改db.venues.find({loc: {$near: [-122.418,37.775] }, $maxDistance:10/69})
是
db.venues.find({loc: {$near: [-122.418,37.775], $maxDistance:10/69 } })