emi*_*zel 3 geospatial mongoose mongodb
我在Mongo做空间查询.我需要找到旧金山10英里范围内的所有场地.从命令行开始,当使用$ geoNear(works)vs $ near(不起作用)时,我会得到不同的结果.我需要使用$ near因为我正在使用Mongoose并且它使用$ near.
$ geoNear有效.我运行这个命令:
db.runCommand({geoNear:"venues",near:[-122.418,37.775], maxDistance:10/69});
Run Code Online (Sandbox Code Playgroud)
我得到的结果按距离排序,在半径10英里范围内.大.
但后来我运行这个$ near命令,我得不到任何结果:
db.venues.find({loc: {$near: [-122.418,37.775] }, $maxDistance:10/69})
Run Code Online (Sandbox Code Playgroud)
据我所知,他们是同一个命令.我错过了什么吗?如果我删除$ maxDistance,我会得到结果,并且它们按距离正确排序.但是,我也得到了超过10英里的结果.
db.venues.find({loc: {$near: [-122.418,37.77] }})
Run Code Online (Sandbox Code Playgroud)
Asy*_*sky 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 } })