Mongodb地理空间索引

一、索引:数据库

    创建索引既耗时也费力,还须要消耗不少资源。使用{"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的地理空间索引假设索引内容是在一个平面上的。这就意味着对于球体,好比地球,它并非十分精确,尤为是在极地区域。具体来讲,两条经线之间纬线的长度在赤道和在育空地区是不同的,后者要短不少。

相关文章
相关标签/搜索