地理空间查询无法在另一台PC上运行

时间:2013-08-04 05:49:29

标签: mongodb geospatial

我需要在 mongodb 集合上进行一些地理空间查询。我在GeoJSON点对象上创建了 2dsphere索引。对象是:

{ "loc" : { "type" : "Point", "coordinates" : [ -122.419416, 37.77493 ] } }

我使用

添加了索引
db.Venue.ensureIndex({loc:"2dsphere"})

它在我的Mac上工作得非常好。但后来我转移到Ubuntu PC并重新创建了数据库和索引。 但是对于Ubuntu地理空间查询不起作用。 MongoDB说

{ errmsg: 'no geo index :(', ok: 0 }

在我的mac上,db.Venue.getIndexes返回:

[
    {
        "v" : 1,
        "key" : {
            "_id" : 1
        },
        "ns" : "syftdb.Venue",
        "name" : "_id_"
    },
    {
        "v" : 1,
        "key" : {
             "loc" : "2dsphere"
         },
        "ns" : "syftdb.Venue",
        "name" : "loc_2dsphere"
    }
]

但是在Ubuntu PC上,db.Venue.getIndexes()返回一个不同的对象:

[
{
    "v" : 1,
    "key" : {
        "_id" : 1
    },
    "ns" : "syftdb.Venue",
    "name" : "_id_"
},
{
    "v" : 1,
    "key" : {
        "loc" : "2dsphere"
    },
    "ns" : "syftdb.Venue",
    "name" : "loc_"
}
]

您会看到名称字段不同。这是问题吗?名称字段必须相同吗?

Mongo版本: Mac:2.0.6 64位 Ubuntu:2.4.4 64bits

1 个答案:

答案 0 :(得分:1)

2.4 之前的mongodb版本中没有2dsphere索引

我多么愚蠢!我没有先查询就问了一个非常愚蠢的问题!