2012-01-04 62 views
0

我有一個名爲GEONAMES收集結構如下:地理空間索引創建的,但使用時的錯誤

{ 
    ... 
    loc: [50.729400634765625, 15.723899841308594] 
}, 
... 

我然後創建一個索引如下:

db.geonames.ensureIndex({ LOC: 「2D」})

我確保索引已正確創建:

> db.geonames.getIndexes()   
[ 
     { 
       "name" : "_id_", 
       "ns" : "mydb.geonames", 
       "key" : { 
         "_id" : 1 
       } 
     }, 
     { 
       "_id" : ObjectId("4f033a6ff50d07e36849464b"), 
       "ns" : "mydb.geonames", 
       "key" : { 
         "loc" : "2d" 
       }, 
       "name" : "loc_" 
     } 
] 

然而,當我嘗試使用查詢這個:

> db.geonames.find({$near: [50,15]}) 
error: { 
     "$err" : "can't find special index: 2d for: { $near: [ 50.0, 15.0 ] }", 
     "code" : 13038 
} 

我在做什麼錯?

回答

4

代替

db.geonames.find({$near: [50,15]}) 

嘗試

db.geonames.find({loc : {$near: [50,15]}}) 
+0

完美的作品。我現在踢自己很辛苦。謝謝 :) – Sid 2012-01-04 14:50:49