Mongodb地理空間索引

來源:互聯網
上載者:User

標籤:

1. LBS地理空間索引
關於LBS相關項目,一般儲存每一個地點的經緯度的座標, 假設要查詢附近的場所,則須要建立索引來提升查詢效率。Mongodb專門針對這樣的查詢建立了地理空間索引。2d和2dsphere索引。
2. 建立索引
建立places集合,來存放地點,loc欄位用來存放地區資料GeoJSON Point。
db.places.insert(   {      loc : { type: "Point", coordinates: [ -73.97, 40.77 ] },      name: "Central Park",      category : "Parks"   })db.places.insert(   {      loc : { type: "Point", coordinates: [ -73.88, 40.78 ] },      name: "La Guardia Airport",      category : "Airport"   })
建立索引
db.places.ensureIndex( { loc : "2dsphere" } )
參數不是1或-1,為2dsphere。還能夠建立複合式索引。
db.places.ensureIndex( { loc : "2dsphere" , category : -1, name: 1 } )

3. 查詢
$geometry表示查詢的幾何圖片.
3.1 查詢多邊形範圍的值
type表示類型:polygon 多邊形
db.places.find( { loc :                  { $geoWithin :                    { $geometry :                      { type : "Polygon" ,                        coordinates : [ [                                          [ 0 , 0 ] ,                                          [ 3 , 6 ] ,                                          [ 6 , 1 ] ,                                          [ 0 , 0 ]                                        ] ]                } } } } )

3.2 查詢附近的值
使用$near來查詢附近的地點。
 db.places.find( { loc :                         { $near :                           { $geometry :                              { type : "Point" ,                                coordinates : [ <longitude> , <latitude> ] } ,                             $maxDistance : <distance in meters>                      } } } )

3.3 查詢圓形內的值
查詢圓時,須要指定圓心, 半徑。
db.places.find( { loc :                  { $geoWithin :                    { $centerSphere :                       [ [ -88 , 30 ] , 10 ]                } } } )
[-88, 30] 為經緯度,  10為半徑。
地址:http://blog.csdn.net/yonggang7/article/details/28109463

Mongodb地理空間索引

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.