mongodb:能find一个2d的索引返回距离吗?

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

我在node.js中使用mongoose, 想知道是否可以用Model.find({'loc':{$ near:[lng,lat],$ maxDistance:5 / 111.12},…. 。)

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

另外,我对用mongooserunco​​mmand使用的确切语法不是很自在。

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

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

另一种方法是在特定的字段上进行近查询,但是您可能需要对距离值进行一些转换以获得正确的范围。 我不记得那会是什么。 实验的最好的地方是mongoshell,然后把它翻译成node.js的命令。

Interesting Posts