zoukankan      html  css  js  c++  java
  • Mongodb地理空间索引

    1、索引:

        建立索引既耗时也费力,还需要消耗很多资源。使用{"bakckground":true}选项可以使这个过程在后台完成,同时正常处理请求。如果不包括background

    这个选项,数据库会阻塞建立索引期间的所有请求。阻塞的做法会让索引建立得更快,同时也意味着应用在此期间不能应答。即便在后台进行也会对正常操作有些影响。

    2、地理空间索引:

       通俗说就是找到离当前位置最近的N个场所。默认情况下,地理空间索引假设值的范围是-180~180。要是想使用其他值,可以通过ensureIndex的选项来指定最大最小值:

        >db.star.trek.ensureIndex({"light-years":"2d"},{"min":-1000,"max":1000});

        这样就创建了一个2000光年的空间索引。

        对于"$near"的例子下面列举一个:

        >db.map.find({"gps":{"$near":[40,-73]}}).limit(10)

        也可以使用geoNear来。

         >db.runCommand({geoNear:"map",near:[40,-70],num:10});

         geoNear会返回每个文档到查询点的距离。这个距离是以你插入的数据为单位的,如果按照经纬度的角度插入,则距离就是经纬度。

         还可以指定形状内的文档。

       例如$center来找到圆形内部的所有站点

         >db.map.find({"gps":{"$within":{"$center":[12,34],5]}}});

      

     3、mongo的地理空间索引假设索引内容是在一个平面上的。这就意味着对于球体,比如地球,它并不是十分精确,尤其是在极地区域。具体来说,两条经线之间纬线的长度在赤道和在育空地区是不一样的,后者要短很多。

  • 相关阅读:
    3.数据库分类
    2.Oracle数据库安装教程
    1.Oracle数据库简介
    MySQL最全存储引擎、索引使用及SQL优化的实践
    大数据各个工具随笔
    初入Shell
    第4章 DDL数据定义
    第3章 Hive数据类型
    第2章 Hive安装
    MySQL 创建数据库
  • 原文地址:https://www.cnblogs.com/kuugachen/p/4568989.html
Copyright © 2011-2022 走看看