3

我有包含如下地理字段的文档。

"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
}

有人可以告诉我为什么吗?

4

1 回答 1

2

像这样翻转点:

“地理”:{“类型”:“点”,“坐标”:[-121.88355687,37.44609999]},

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

于 2013-09-30T16:58:36.310 回答