На моей машине запущен док-контейнер BigChainDB, и я пытаюсь хранить и извлекать геопространственные данные.Я создал через интерфейс MongoDB «расположение» индекса 2dsphere в коллекции «метаданных».Я проверил с помощью команды:
db.people.getIndexes()
И я думаю, что все в порядке, на самом деле результат таков:
{
"v" : 2,
"key" : {
"loc" : "2dsphere"
},
"name" : "loc_2dsphere",
"ns" : "bigchain.metadata",
"2dsphereIndexVersion" : 3
}
Документ, который я вставил, чтобы попробоватьнекоторые пространственные запросы (это результат запроса db.metadata.findOne ()):
{
"_id" : ObjectId("5ccab10a2ce1b70022823a0f"),
"id" : "752ee9abccf83c7fd25d86c9a7d12229ae292fa27544f6881f1dbf97ccd8b413",
"metadata" : {
"location" : {
"type" : "Point",
"coordinates" : [
22.170872,
113.578749
]
}
}
}
Но когда я использую этот пространственный запрос, ничего не получается:
db.metadata.find(
{
"metadata": {
"location": {
$near: {
$geometry: {
type: "Point" ,
coordinates: [ 22 , 113 ]
},
}
}
}
})
Я делаю что-то не так, или есть вероятность, что индекс не работает?