本文介绍了阵列上的MongoDB地理空间索引(多键+地理空间)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是我的数据的简化版本:

Here is a simplified version of my data:

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

我希望能够做类似的事情

I would like to be able to do things like

> db.foo.find( { locations : { $near : [5,5] } } )

有没有一种方法可以在数组上创建地理空间索引?这样做:

Is there a way to create a geospatial index on an array? Doing:

> db.foo.ensureIndex({locations: "2d"}) 

出现以下错误:

geo values have to be numbers: { 0: [ 1.0, 5.0 ], 1: [ 2.0, 4.0 ] }

任何建议或资源将不胜感激。

Any advice or resources would be very much appreciated.

推荐答案

当前,MongoDB的Geospatial索引仅支持2个坐标索引。您每个集合也只能有一个地理空间索引。

Currently, MongoDB's Geospatial indexes only support 2 coordinate indexes; you can also have only one geospatial index per collection.

它们必须是两个数值的数组,或者是两个数值的文档。

They must be either an array of two numeric values, or a document of two numeric values.

数组:

  [40.889248, -73.898583]

文档:

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

这篇关于阵列上的MongoDB地理空间索引(多键+地理空间)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-26 09:28