mongodb 索引3

1.name属性

当新建立索引后,可以看到name的属性值,

当有新建索引是多个属性时,name之间就会用_隔开,且name值最多128的字节长度,当用多个属性值新建索引时,可以重新命名,

直接索引名后边加上name属性名称,删除时也可以直接使用name来删除索引。

2.db.tableName.ensureIndex({inserted Index},{unique:true/false})

新建该索引,指定唯一。

插入数据显示成功,当再次插入数据与之前插入的数据m n 相同时,报错。

3.稀疏性-----sparse

稀疏性举例:有一个m索引,新插入数据如果是n:1,那么m也会为这条数据创建索引,是null,当指定稀疏性后,m就不会为这条数据创建索引。

db.tableName.ensureIndex({inserted index},{sparse:true/false)}

mongdb默认的是不稀疏的,就是会为不存在的字段创造索引。

好处:不必为不存在的字段创造索引,减少占用,增大速度!

先介绍一个东西

field: $exists: <boolean> 

true 会查找m的数据  FALSE 查找不带m的数据

不能在稀疏索引上查找这个字段不存在的记录,强制指定索引.hint(索引名称)

强制指定索引后查找结果为空。

4.地理位置索引

分类:1.2D索引  存查平面上的点

          2.2Dsphere索引 存查球面上得点

方式:1.查找距离某点一定距离内的点

         2.查找包含在某区域内的点

5.2D索引

db.tableName.ensureIndex({w:2d})

使用经纬度表示位置【经度,纬度】

取值范围-180<经度<180               -90<纬度<90

 插入的点要在范围,不然会发生不可预知的错误。

查询方式:1.$near 查询:查询据某点最近的点  结果是一百个(不管满不满足条件)

                    2.$geoWithin 查询,查询某个形状的点

不支持minDistance

形状的表示:

1.$box:矩形

{$box:[[<x1>,<y1>],<x2>,<y2>]]}表示  第一个是左边界,第二个右边界

2.圆形$center

{$center:[[<x1>,<y1>],r]}表示

3.多边形  $polygon

{$polygon:[[<x1>,<y1>],[<x2>,<y2>],[<x3>,<y3>]]}

原文地址:https://www.cnblogs.com/lilight/p/7501954.html