我需要对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 64bits Ubuntu:2.4.4 64bits