$ near需要geojson点,给定geojson点

时间:2013-09-30 03:00:30

标签: mongodb

我的文档包含如下所示的地理区域。

"geo" : {
    "type" : "Point",
    "coordinates" : [
        37.44609999,
        -121.88355687
    ]
},

我创建了一个空间索引,证明如下。

db.collection.getIndexes()
[
    {
        "v" : 1,
        "key" : {
        "_id" : 1
        },
        "ns" : "db.collection",
        "name" : "_id_"
    },
    {
        "v" : 1,
        "key" : {
        "geo.coordinates" : "2dsphere"
        },
        "ns" : "db.collection",
        "name" : "geo.coordinates_2dsphere"
    }
]

然而,当我执行以下查询时(从MongoDB手册逐字逐句)。

db.collection.find( { 'geo.coordinates': { $near: 
                                            { $geometry :
                                                { type : "Point", 
                                                  coordinates: [ 37.44609999, -121.88355687 ] } }, 
                                                  $maxDistance: 1000
                                         } } )

我收到以下错误。

error: {
    "$err" : "$near requires geojson point, given { type: \"Point\", coordinates: [ 37.44609999, -121.88355687 ] }",
    "code" : 16681
}

有人可以告诉我为什么?

1 个答案:

答案 0 :(得分:2)

翻转积分:

“geo”:{     “type”:“Point”,     “坐标”:[         -121.88355687,         37.44609999     ] },

否则,请检查您的坐标以确定它们是否真实: http://geojsonlint.com/