1

我从 mongodb 文档中看到,带有geoNear 返回距离的 db.runCommand也。

我在 node.js 中使用猫鼬,想知道Model.find({'loc': { $near: [lng, lat], $maxDistance:5/111.12},.... .)

如果您有多个 2d 索引,则带有 geoNear 的 runCommand 将不起作用。我在一个集合中有 2 个 2d 索引。一个在模式中定义,另一个是 DbRef 的一部分。

另外,我对用于 mongoose 的 runco​​mmand 的确切语法不太满意。

4

1 回答 1

1

geoNear在本地 MongoDB 驱动程序中可用,因此通过扩展在 mongoose 中,将搜索文档中的所有地理索引,并可以在那里多次返回它,您可以传递参数 uniqueDocs 以确保您没有重复的条目。

collection.geoNear(50, 50, {uniqueDocs:true}, function(err, docs) {
});

另一种方法是对特定字段进行近距离查询,但您可能必须对距离值进行一些转换才能获得正确的范围。我不记得那会是什么。最好的实验场所是 mongoshell,然后将其转换为 node.js 的命令。

于 2012-06-27T17:14:26.880 回答