2012-12-16 40 views
0

我试图以千米/英里的特定半径获取记录。mongodb地理空间查询不起作用

MongoDB的2D指数:

db.collection.ensureIndex({locaction:"2d"}) 

集合中记录有索引键:

"location" : { "longitude" : 34.791592164168, "latitude" : 32.0516908 0405 } 

从外壳调用集合的getIndexes()使我这个:

 ...{ 
      "v" : 1, 
      "key" : { 
        "location" : "2d" 
      }, 
      "ns" : "events.events", 
      "name" : "location_2d" 
    }... 

尽管如此,尝试使用此命令获取记录失败:

> db.events.find({location:{ $near :{ longitude:34,latitude:32},$maxDistance:10/3963.192}}) 

任何人都可以指出什么阻止了它的工作?

+1

你做了什么错误? –

+0

尝试给你的'$ near'键一个数组值: - '{$ near:[34,32]}' –

回答

2

据我所知,$near取两个目标值的数组,所以你可以尝试在数组给你的价值观: -

db.events.find({location:{ $near : [34, 32],$maxDistance:10/3963.192}}) 
+0

它完美地工作,谢谢! =) – Ranco

+0

@Ranco ..不客气:) –