Mongo中的地理空间索引已创建,但在使用时会出错

时间:2012-01-04 14:30:16

标签: mongodb geospatial

我有一个名为 geonames 的集合,结构如下:

{
    ...
    loc: [50.729400634765625, 15.723899841308594]
},
...
然后我按如下方式创建索引:

db.geonames.ensureIndex({loc:" 2d"})

我确保索引已正确创建:

> db.geonames.getIndexes()          
[
        {
                "name" : "_id_",
                "ns" : "mydb.geonames",
                "key" : {
                        "_id" : 1
                }
        },
        {
                "_id" : ObjectId("4f033a6ff50d07e36849464b"),
                "ns" : "mydb.geonames",
                "key" : {
                        "loc" : "2d"
                },
                "name" : "loc_"
        }
]

但是,当我尝试使用此查询时:

> db.geonames.find({$near: [50,15]})
error: {
        "$err" : "can't find special index: 2d for: { $near: [ 50.0, 15.0 ] }",
        "code" : 13038
}

我做错了什么?

1 个答案:

答案 0 :(得分:4)

代替

db.geonames.find({$near: [50,15]})

尝试

db.geonames.find({loc : {$near: [50,15]}})