一、索引:數據庫
創建索引既耗時也費力,還須要消耗不少資源。使用{"bakckground":true}選項可使這個過程在後臺完成,同時正常處理請求。若是不包括backgroundblog
這個選項,數據庫會阻塞創建索引期間的全部請求。阻塞的作法會讓索引創建得更快,同時也意味着應用在此期間不能應答。即使在後臺進行也會對正常操做有些影響。索引
二、地理空間索引:資源
通俗說就是找到離當前位置最近的N個場所。默認狀況下,地理空間索引假設值的範圍是-180~180。要是想使用其餘值,能夠經過ensureIndex的選項來指定最大最小值:文檔
>db.star.trek.ensureIndex({"light-years":"2d"},{"min":-1000,"max":1000});it
這樣就建立了一個2000光年的空間索引。後臺
對於"$near"的例子下面列舉一個:map
>db.map.find({"gps":{"$near":[40,-73]}}).limit(10)請求
也可使用geoNear來。im
>db.runCommand({geoNear:"map",near:[40,-70],num:10});
geoNear會返回每一個文檔到查詢點的距離。這個距離是以你插入的數據爲單位的,若是按照經緯度的角度插入,則距離就是經緯度。
還能夠指定形狀內的文檔。
例如$center來找到圓形內部的全部站點
>db.map.find({"gps":{"$within":{"$center":[12,34],5]}}});
三、mongo的地理空間索引假設索引內容是在一個平面上的。這就意味着對於球體,好比地球,它並非十分精確,尤爲是在極地區域。具體來講,兩條經線之間緯線的長度在赤道和在育空地區是不同的,後者要短不少。