mongodb專門針對這樣的查詢建立了地理空間索引。
2d和2dsphere索引。
建立places集合,來存放地點,
loc欄位用來存放地區資料geojson point。
db.places.insert(
,name: "central park",
category : "parks"
})db.places.insert(
,name: "la guardia airport",
category : "airport"
})
建立索引
db.places.ensureindex( )
引數不是1或-1,為2dsphere。
還能夠建立組合索引。
db.places.ensureindex( )
$geometry表示查詢的幾何.
type表示型別:polygon 多邊形
db.places.find( } } } )
使用$near來查詢附近的地點。
db.places.find( ,
$maxdistance : } } } )
查詢圓時,須要指定圓心, 半徑。
db.places.find( } } )
[-88, 30] 為經緯度, 10為半徑。
Mongodb地理空間索引
關於lbs相關專案,一般儲存每個地點的經緯度的座標,如果要查詢附近的場所,則需要建立索引來提公升查詢效率。mongodb專門針對這種查詢建立了地理空間索引。2d和2dsphere索引。建立places集合,來存放地點,loc欄位用來存放地區資料geojson point。12 3 4 5 6 7 8...
MongoDB的地理空間索引
db.users.ensureindex mongodb就會在position這個鍵上建立二維的地理索引。position的值必須是某種形式的一對值,乙個包含兩個元素的陣列或者包含兩個鍵的內嵌文件,比如 使用的時候主要可以用near方式進行find,會按照距離有近到遠的順序排序返回10個 db.us...
mongodb地理位置索引實現原理
地理位置索引支援是mongodb的一大亮點,這也是全球最流行的lbs服務foursquare 選擇mongodb的原因之一。我們知道,通常的資料庫索引結構是b tree,如何將地理位置轉化為可建立b tree的形式,下文將為你描述。首先假設我們將需要索引的整個地圖分成16 16的方格,如下圖 左下角...