以下是我的数据的简化版本:

> db.foo.insert({"name" : "jim",  "locations" : [[10,10],[3,6],[1,2]]})
> db.foo.insert({"name" : "john",  "locations" : [[1,5],[2,4]]})

我希望能做一些像
> db.foo.find( { locations : { $near : [5,5] } } )

是否有方法在阵列上创建地理空间索引?正在执行:
> db.foo.ensureIndex({locations: "2d"})

出现以下错误:
geo values have to be numbers: { 0: [ 1.0, 5.0 ], 1: [ 2.0, 4.0 ] }

任何建议或资源将非常感谢。

最佳答案

目前,MongoDB的地理空间索引只支持2个坐标索引;每个集合也只能有一个地理空间索引。
它们必须是两个数值的数组,或者是两个数值的文档。
数组:

  [40.889248, -73.898583]

文件:
{ "lat" : 40.889248, "lon" : -73.898583 }

关于mongodb - 数组上的MongoDB地理空间索引(多键+地理空间),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5570317/

10-10 18:28