2015-05-28 71 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的所有其他座標超過一公里 –

相關問題