db.users.ensureindex()
mongodb就會在position這個鍵上建立二維的地理索引。position的值必須是某種形式的一對值,乙個包含兩個元素的陣列或者包含兩個鍵的內嵌文件,比如:
} 使用的時候主要可以用near方式進行find,會按照距離有近到遠的順序排序返回10個:
db.users.find(}).limit(10)
還可以使用geonear:
gb.runcommand()
它還會返回每個文件到這個點的距離。
mongodb在實現的時候是進行嚴格的二維平面建立索引的,所以你如果想儲存地球的經度或者緯度資訊的話,在高緯度會失真加大。所以需要在儲存到mongodb的時候進行投影,將地球對映到二維平面。
所以你需要建立球面二維索引:
db.users.ensureindex()
座標儲存的時候要按照longitude, latitude這個順序,因為在處理不同緯度的經度間距時需要特殊處理。
原文:hongchangfirst
hongchangfirst的主頁:
Mongodb地理空間索引
mongodb專門針對這樣的查詢建立了地理空間索引。2d和2dsphere索引。建立places集合,來存放地點,loc欄位用來存放地區資料geojson point。db.places.insert name central park category parks db.places.insert...
Mongodb地理空間索引
關於lbs相關專案,一般儲存每個地點的經緯度的座標,如果要查詢附近的場所,則需要建立索引來提公升查詢效率。mongodb專門針對這種查詢建立了地理空間索引。2d和2dsphere索引。建立places集合,來存放地點,loc欄位用來存放地區資料geojson point。12 3 4 5 6 7 8...
巧妙的利用Mongodb做地理空間查詢
2.建立model let goodsmodel mongoose.model goods goodsschema 3.插入資料 按照以下資料格式往資料庫插入資料 4.檢視使用者附近的資料 goodsmodel.find limit 10 skip 0 lean exec 總結 本次主要分享位置索引...