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公里內的物體?
但如果我放棄了價值$說maxDistance:2000(2千米),它返回的所有對象 –
我並不真正瞭解最新的地理。然而,它看起來像你提供的5個值都非常接近。你知道你的價值觀相距多遠嗎?你確定它們相距超過2000米嗎? @HarshaVardhan – rogerdeuce
是的,他們彼此接近2至3公里。 '$ near'的座標距離db的所有其他座標超過一公里 –