《MongoDB权威指南》学习整理----MongoDB对GIS应用的支持
来源:互联网 发布:一元洗车软件 编辑:程序博客网 时间:2024/05/22 14:43
地理空间索引
地理空间索引是MongoDB专门为当前热门的GIS应用提供的特殊索引支持。这种索引和普通的索引创建、删除方式相同,不同的是这种索引的在创建时候的值:
创建方法
db.collection.ensureIndex({keyName:"2d"},{'min':-1000,max:1000})
注意,这里使用的是"2d"而不是表示排序的1或-1。同时对key的值当然也有比较严格要求:
建立地理空间索引的key的value值必须是某种形式的一对值:一个包含两个元素的数组或包含两个键的文档。默认情况下该索引值的范围是-180到180(经纬度),也可以通过min、max来确定。
查询方法
对于地理空间索引的查询分为两种情况:
普通查询
普通查询和我们上边讲到的find差别不大,但是引入了另一些专门用于GIS查询的新条件句和命令,以下的条件句必须是建立在创建2dIndex之后才能够使用,否则MongoDB会提示13038错误:
$near
db.collection.find({keyName:{'$near':[value1,value2]}})
会按value1,value2为中心由近及远的将集合中的所有文档都返回,没有指定limit的时候默认是100个文档,可以通过limit减少查询内容。
geoNear
db.runCommand({geoNear:collectionName,near:[value1,value2],num:显示数字(limit作用)})
这个使用runCommand形式的查询和$near条件句类似,但是geoNear可以返回每个文档距离目标value1,value2的距离,以'dis'来表示,但是当查询的数据大于4M,就只能至少用$near条件句方式。
$within
矩形:db.collection.find({keyName,{'$within':{'$box':[[左下角坐标],[右上角坐标]]}}})
圆形:db.collection.find({keyName,{'$within':{'$center':[[圆心坐标],半径]}}})
不只是根据点找附近点的功能,MongoDB还提供了形状(矩形、圆形和多边形)范围内查找的功能。
查询提示
在实际使用的时候不只是范围,同时还有范围内的某个资源,所以,一般在每个资源文档上都创建一个关键字key来描述该文档数据哪种资源。这样就可以快速的超找到某个范围内的某些资源。
- 《MongoDB权威指南》学习整理----MongoDB对GIS应用的支持
- 《MongoDB权威指南》学习整理----MongoDB复制
- 《MongoDB权威指南》学习整理----MongoDB分片
- 《MongoDB权威指南》学习整理----MongoDB进阶指南
- 《MongoDB权威指南》学习整理----MongoDB简介及基本概念
- 《MongoDB权威指南》学习整理----MongoDB中的基本数据类型
- 《MongoDB权威指南》学习整理----MongoDB文档查询
- 《MongoDB权威指南》学习整理----MongoDB中的索引
- 《MongoDB权威指南》学习整理----MongoDB中的聚合
- 《MongoDB权威指南》学习整理----MongoDB安装与监控
- 《MongoDB权威指南》学习整理----MongoDB安全和备份
- 《MongoDB权威指南》学习整理----Java操作MongoDB实例
- 《mongodb权威指南》学习
- 《MongoDB权威指南》学习整理----MongoDB文档增加、删除及更新
- 学习《Mongodb权威指南》学习笔记 (一)
- 学习《Mongodb权威指南》学习笔记 (二)
- MongoDB权威指南
- mongodb权威指南笔记
- 解读Android 4.0
- iOS开发——keychain的使用
- 【数据结构】学习笔记(一)——基本概念和框架
- Spring mvc 手动选择视图解析(多视图手动指定解析类别)
- AsyncTask
- 《MongoDB权威指南》学习整理----MongoDB对GIS应用的支持
- mips汇编指令学习
- 基于vb+access的电子建档设计
- Accelerated C++ 习题解答 第5章
- Ubuntu下Ceph单节点和多节点安装小结
- iOS 静态类库项目的建立与使用
- 硬盘分区失败丢失数据如何恢复
- Android机可以刷wp8.1了!
- JavaScript入门之改变HTML样式