Mongodb空间查询$ geoNear vs $ near

时间:2012-12-11 19:04:21

标签: mongodb mongoose geospatial

我在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] }})

1 个答案:

答案 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 } })