查询该单据的正确方式是什么?(如果索引正确)

我的机器上运行着一个BigChainDB docker容器,我正在尝试存储和检索地理空间数据。我已经通过MongoDB接口在"metadata“集合中创建了一个2dsphere索引"location”。我已经用命令检查过了:

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 ]
         },
       }
     }
  }
})

我做错了什么,或者索引不工作的可能性?

转载请注明出处:http://www.intsu.net/article/20230510/1470802.html