MongoDB和2dsphere索引包含多个位置

时间:2016-04-27 12:05:23

标签: mongodb geospatial

在MongoDB集合中,我想在包含多个位置的字段上创建2dsphere索引。

我认为它必须是可行的,因为$geoNear阶段运算符具有includeLocsuniqueDocs等选项,表明如果位置字段有多个,我们可以指定一些条件位置。

然后我尝试在字段loc上创建一个索引,如下所示:

//db.users
{
     //other fields
loc: [
          {type:"Point", coordinates: [-20, 20]},
          {type:"Point", coordinates: [-30, 30]}
     ]
}

代码:

db.users.createIndex({loc:"2dsphere"})

但我收到loc格式无效的错误。

如何在包含多个位置的字段上创建索引?

1 个答案:

答案 0 :(得分:2)

如果它对某人有帮助:在大多数情况下,无论类型是什么,GeoJSON数据对象的第二个字段都是coordinates。因此,以下内容不仅适用于我的情况,而且适用于不同类型的混合,例如LineString等。您需要做的就是在embdeeded文档的特定字段上创建索引:< / p>

db.users.createIndex({"loc.coordinates":"2dsphere"})