MongoDB的地理空間索引

2021-07-13 07:47:48 字數 546 閱讀 4565

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 總結 本次主要分享位置索引...