Геопространственный индекс в Монго создан, но ошибки при использовании - PullRequest
0 голосов
/ 04 января 2012

У меня есть коллекция с именем 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 Ответ

4 голосов
/ 04 января 2012

вместо

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

попробуй

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