我有一个名为 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
}
我做错了什么?
答案 0 :(得分:4)
代替
db.geonames.find({$near: [50,15]})
尝试
db.geonames.find({loc : {$near: [50,15]}})