在MongoDB集合中,我想在包含多个位置的字段上创建2dsphere
索引。
我认为它必须是可行的,因为$geoNear
阶段运算符具有includeLocs
或uniqueDocs
等选项,表明如果位置字段有多个,我们可以指定一些条件位置。
然后我尝试在字段loc
上创建一个索引,如下所示:
//db.users
{
//other fields
loc: [
{type:"Point", coordinates: [-20, 20]},
{type:"Point", coordinates: [-30, 30]}
]
}
代码:
db.users.createIndex({loc:"2dsphere"})
但我收到loc
格式无效的错误。
如何在包含多个位置的字段上创建索引?
答案 0 :(得分:2)
如果它对某人有帮助:在大多数情况下,无论类型是什么,GeoJSON数据对象的第二个字段都是coordinates
。因此,以下内容不仅适用于我的情况,而且适用于不同类型的混合,例如LineString
等。您需要做的就是在embdeeded文档的特定字段上创建索引:< / p>
db.users.createIndex({"loc.coordinates":"2dsphere"})