如何在MongoDB中的集合的两个不同键上创建2d索引?

时间:2014-12-19 09:55:44

标签: mongodb

我的收藏结构如下:

{
latitude:
longitude:
metric1: 
metric2:
metric3:
}

我想使用纬度和经度键创建一个2d索引。

我知道可以通过创建一个包含纬度和经度值的单独位置字段来完成。但是,我不想改变当前集合的结构。它有什么解决方案吗?

1 个答案:

答案 0 :(得分:0)

没有。您需要以MongoDB的地理空间索引所期望的方式构造位置字段。对于2d索引,您使用遗留坐标对

{
    "loc" : [<longitude>, <latitude>],
    "metric1" : <value>,
    "metric2" : <value>,
    "metric3" : <value>
}

对于2dsphere索引,您使用GeoJSON

{
    "loc" : { "type" : "Point", "coordinates" : [<longitude>, <latitude>] },
    "metric1" : <value>,
    "metric2" : <value>,
    "metric3" : <value>
}