mongoDB的地理位置索引

1、索引属性

1)创建索引时的格式:db.collection.ensureIndex({param},{param}),其中第二个参数便是索引的属性;

2)比较重要的属性有:名字,name指定:db.collection.ensureIndex({},{name:""});

3)唯一性,unique指定:db.collection.ensureIndex({},{unique:true/false});

4)稀疏性,sparse指定:db.collection.ensureIndex({},{sparse:true/false});

5)是否定时删除,expireAfterSeconds指定:TTL,过期索引;

2、地理位置索引

概念:将一些点的位置存储在MongoDB中,创建索引后,可以按照位置来查找其他点。

子分类:2d索引,用于存储和查找平面上的点。sdsphere索引,用于存储和查找球面上的点。

查找方式:查找距离某个点一定距离内的点,查找包含在某区域内的点。

3、2D索引:平面地理位置索引

创建方式:db.collection.ensureIndex({"w":"2d"})

位置表示方式:经纬度[经度,纬度]

取值范围:经度[-180,180]纬度[-90,90]

查询方式:$near查询:查询距离某个点最近的点,$geoWithin查询:查询某个形状内的点

4、形状的表示

$box:矩形,使用

{$box:[[<x1>,<y1>],[<x2>,<y2>]]}表示。

$center:圆形,使用

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

$polygon:多边形,使用

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

5、使用geoWithin查询


6、使用geoNear查询

geoNear查询:geoNear使用runCommand命令进行使用,常用使用如下:

db.runCommand(

   {geoNear:<collection>,

     near:[x,y],

     minDistance:(对2d索引无效)

     maxDistance:

     num:

........})

7、2dsphere索引

概念:球面地理位置索引

创建方式:db.collection.ensureIndex({"w":"2dsphere"})

位置表示方式:

GeoJSON:描述一个点,一条直线,多边形等形状。

格式:

{type:"", coordinates:[<coordinates>]}

查询方式与2d索引查询方式类似,

支持$minDistance与$maxDistance

8、索引构建情况分析

索引好处:加快索引相关的查询。

索引不好处:增加磁盘空间消耗,降低写入性能。

如何判断当前索引构建情况:

1)mongostat工具介绍。

2)profile集合介绍。

3)日志介绍。

4)explain分析。

9、mongostat查看mongodb运行状态使用命令介绍

mongostat:查看mongodb运行状态的程序。

使用说明:mongostat -h 127.0.0.1:12345

字段说明:

索引情况:idx miss



10、使用mongostat效果验证

11、关于profile集合

12、关于mongodb日志

13、关于explain




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值