2015-05-28 69 views
0

我在mongodb中使用地理空间索引来查找并列出db中靠近特定位置的对象。在这里,我使用$near$maxDistance来查找特定公里范围内的物体。我在这里给予$maxDistance的价值感到困惑。任何人都可以帮助我理解我想给$maxDistance什么价值(千米,米或拉德)? 这里是我的数据库结构:

{ 
     "_id" : ObjectId("556719a7e0550ca9d16ca303"), 
     "Name" : "Apl", 
     "loc" : [ 
       11.485489, 
       77.247103 
     ] 
} 
{ 
     "_id" : ObjectId("556719b1e0550ca9d16ca304"), 
     "Name" : "Ind", 
     "loc" : [ 
       11.462442, 
       77.252167 
     ] 
} 
{ 
     "_id" : ObjectId("556719bfe0550ca9d16ca305"), 
     "Name" : " Ara ", 
     "loc" : [ 
       11.452179, 
       77.276629 
     ] 
} 
{ 
     "_id" : ObjectId("556719eae0550ca9d16ca306"), 
     "Name" : " Akodi ", 
     "loc" : [ 
       11.455739, 
       77.299278 
     ] 
} 
{ 
     "_id" : ObjectId("556719f6e0550ca9d16ca307"), 
     "Name" : " Kasi ", 
     "loc" : [ 
       11.459693, 
       77.328804 
     ] 
} 

在这里,我用下面的查询要列出从特定位置5公里的对象。

db.place.find({loc:{$near:[11.503993, 11.503993],$maxDistance:1000}}); 

上面的查询返回如下:

{ "_id" : ObjectId("556719a7e0550ca9d16ca303"), "Name" : "Apl", "loc" : 
[ 11.485489, 77.247103 ] } 
{ "_id" : ObjectId("556719b1e0550ca9d16ca304"), "Name" : "Ind", "loc" : 
[ 11.462442, 77.252167 ] } 
{ "_id" : ObjectId("556719bfe0550ca9d16ca305"), "Name" : " Ara ", "loc" 
: [ 11.452179, 77.276629 ] } 
{ "_id" : ObjectId("556719eae0550ca9d16ca306"), "Name" : " Akodi ", "loc 
" : [ 11.455739, 77.299278 ] } 
{ "_id" : ObjectId("556719f6e0550ca9d16ca307"), "Name" : " Kasi ", "loc" 
: [ 11.459693, 77.328804 ] } 

但如果我使用的查询与$maxDistance:66它没有返回。我应该使用什么值$maxDistance来获得2公里内的物体?

回答

0

看起来最小和最大距离以米测量等:

{ 
    $near: { 
    $geometry: { 
     type: "Point" , 
     coordinates: [ <longitude> , <latitude> ] 
    }, 
    $maxDistance: <distance in meters>, 
    $minDistance: <distance in meters> 
    } 
} 

弧度与遗留坐标使用。

来源:http://docs.mongodb.org/manual/reference/operator/query/near/

+0

但如果我放弃了价值$​​说maxDistance:2000(2千米),它返回的所有对象 –

+0

我并不真正了解最新的地理。然而,它看起来像你提供的5个值都非常接近。你知道你的价值观相距多远吗?你确定它们相距超过2000米吗? @HarshaVardhan – rogerdeuce

+0

是的,他们彼此接近2至3公里。 '$ near'的坐标距离db的所有其他坐标超过一公里 –

相关问题