地理位置索引 2d索引
、2d索引:平面地理位置索引,用于存储和查找平面上的点。
、2dsphere索引:球面地理位置索引,用于存储和查找球面上的点。
、查找距离某个点一定距离内的点。
、查找包含在某区域内的点。
比如当前打车软件比较火,当确定某个乘客的点的时候,服务器需要确定某个范围内的出租车,接收乘客的搭车请求,这个时候就可以使用mongodb的地理位置索引去完成这样的需求
比如在使用团购网站时,距离我们最近的餐馆,也可以使用mongodb的地理位置索引去完成。
mongodb的地理位置索引十分强大,可以节省其他数据库所要花费的大量时间来完成应用。
db.collection.ensureIndex({w:'2d'})
位置表示方式:经纬度[经度,纬度]
取值范围:经度[-,] 纬度[- ]
> db.location.ensureIndex({'w':'2d'})
{
"createdCollectionAutomatically" : true,
"numIndexesBefore" : ,
"numIndexesAfter" : ,
"ok" :
}
> db.location.insert({w:[,]})
WriteResult({ "nInserted" : })
> db.location.insert({w:[,]})
WriteResult({ "nInserted" : })
> db.location.insert({w:[,]})
WriteResult({ "nInserted" : })
> db.location.insert({w:[,]})
WriteResult({ "nInserted" : })
> db.location.insert({w:[,]})
WriteResult({ "nInserted" : })
> db.location.find()
{ "_id" : ObjectId("5b6b6fa572ff7510af7fc783"), "w" : [ , ] }
{ "_id" : ObjectId("5b6b6fa872ff7510af7fc784"), "w" : [ , ] }
{ "_id" : ObjectId("5b6b6fab72ff7510af7fc785"), "w" : [ , ] }
{ "_id" : ObjectId("5b6b703772ff7510af7fc788"), "w" : [ , ] }
、$near查询:查询距离某个点最近的点。
、$geoWithin查询:查询某个形状内的点。
> db.location.find({w:{$near:[,]}})
{ "_id" : ObjectId("5b6b6fa572ff7510af7fc783"), "w" : [ , ] }
{ "_id" : ObjectId("5b6b6fa872ff7510af7fc784"), "w" : [ , ] }
{ "_id" : ObjectId("5b6b6fab72ff7510af7fc785"), "w" : [ , ] }
{ "_id" : ObjectId("5b6b703772ff7510af7fc788"), "w" : [ , ] }
> db.location.find({w:{$near:[,],$maxDistance:}})
{ "_id" : ObjectId("5b6b6fab72ff7510af7fc785"), "w" : [ , ] }
{ "_id" : ObjectId("5b6b6fa872ff7510af7fc784"), "w" : [ , ] }
{ "_id" : ObjectId("5b6b6fa572ff7510af7fc783"), "w" : [ , ] }
、$box:矩形,使用
{$box:[[<x1>,<y1>],[<x2>,<y2>]]}表示
都是坐标,第一个坐标表示矩形的左边界,第二个坐标表示矩形的右边界
、$center:圆形,使用
{$center:[[<x1>,<y1>],r]}
第一个表示圆心位置,第二个代表半径
、$polygon:多边形,使用
{$polygon:[<x1>,<y1>],[<x2>,<y2>],[<x3>,<y3>]}表示
每个数组代表一个坐标点,这些点代表一个多边形
地理位置索引 2d索引的更多相关文章
- SQL索引学习-索引结构
前一阵无意中和同事讨论过一个SQL相关的题(通过一个小问题来学习SQL关联查询),很惭愧一个非常简单的问题由于种种原因居然没有回答正确,数据库知识方面我算不上技术好,谈起SQL知识的学习我得益于200 ...
- sphinx续5-主索引增量索引和实时索引
原文件地址:http://blog.itpub.net/29806344/viewspace-1400942/ 在数据库数据非常庞大的时候,而且实时有新的数据插入,如果我们不更新索引,新的数据就sea ...
- 关于数据库表中的索引及索引列的CRUD
-- 查询一个数据库表中的索引及索引列use [RuPengWangDB]GOSELECT indexname = a.name , tablename = c. name , indexcolu ...
- 数据库索引<一> 索引结构表结构
有很长时间没有更新博客了,再过几天都2月分了,如果再不更新一篇,我1月分都没有更新,保持连续,今天更新一篇. 最近没有什么看技术方面的东西,游戏,画画搞这些去了.我发现我每年一到年底就是搞这些东西,其 ...
- oracle索引,索引的建立、修改、删除
索引,索引的建立.修改.删除 2007-10-05 13:29 来源: 作者: 网友评论 0 条 浏览次数 2986 索引索引是关系数据库中用于存放每一条记录的一种对象,主要目的是加快数据的读取速度和 ...
- MYSQL的全表扫描,主键索引(聚集索引、第一索引),非主键索引(非聚集索引、第二索引),覆盖索引四种不同查询的分析
文章出处:http://inter12.iteye.com/blog/1430144 MYSQL的全表扫描,主键索引(聚集索引.第一索引),非主键索引(非聚集索引.第二索引),覆盖索引四种不同查询的分 ...
- paip.提升性能--- mysql 建立索引 删除索引 很慢的解决.
paip.提升性能--- mysql 建立索引 删除索引 很慢的解决. 作者Attilax , EMAIL:1466519819@qq.com 来源:attilax的专栏 地址:http://blo ...
- SQL Server索引 - 聚集索引、非聚集索引、非聚集唯一索引 <第八篇>
聚集索引.非聚集索引.非聚集唯一索引 我们都知道建立适当的索引能够提高查询速度,优化查询.先说明一下,无论是聚集索引还是非聚集索引都是B树结构. 聚集索引默认与主键相匹配,在设置主键时,SQL Ser ...
- 软件开发人员真的了解SQL索引吗(索引使用原则)
原文:软件开发人员真的了解SQL索引吗(索引使用原则) 前两篇文章我总结了一些SQL数据库索引的问题,这篇主要来分析下索引的优缼点,以及如何正确使用索引. 索引的优点:这个显而易见,正确的 ...
随机推荐
- Python-OpenCV中的图像轮廓检测
目录 cv2.findContours() 主要记录Python-OpenCV中的cv2.findContours()方法:官方文档: cv2.findContours() 在二值图像中寻找图 ...
- uva10570(枚举基准,贪心)
uva10570(枚举基准,贪心) 输入一个1至n的排列(n<=500),每次可以交换两个整数,用最小的交换次数把排列变成1至n的一个环状排列. 首先用\(O(n)\)的时间枚举一个排列,接着问 ...
- 遍历json字符串 并 写入对应的文本框
1.js代码: function getFlws(){ var url = urlpath + "bhjk/getJson2.sd?"; $.post(url,function(d ...
- 用cmd命令来 启动和关闭 SqlServer
cmd命令 启动and关闭 sql数据库服务 (1)先用以管理员身份打开你的cmd窗口. (2)后输入以下对应的命名. 如下: 启动SQLSERVER NET START MSSQLSERVER 暂停 ...
- c# log4Net 详细说明
转载 http://www.cnblogs.com/kissazi2/p/3392605.html
- 017 Letter Combinations of a Phone Number 电话号码的字母组合
给定一个数字字符串,返回数字所有可能表示的字母组合. 输入:数字字符串 "23"输出:["ad", "ae", "af" ...
- Eclipse中mybatis的xml文件没有提示,出现the file cannot be validated as the XML definition.....
1.下载dtd文件 2.在eclipse中配置本地dtd文件: Window->Preferences->XML->XML Catalog->User Specified En ...
- UVALive - 6440
题目链接:https://vjudge.net/contest/241341#problem/G Indonesia, as well as some neighboring Southeast As ...
- Storm概念学习系列之Tuple元组(数据载体)
不多说,直接上干货! Tuple元组 Tuple 是 Storm 的主要数据结构,并且是 Storm 中使用的最基本单元.数据模型和元组. Tuple 描述 Tuple 就是一个值列表, Tuple ...
- JavaScript 系列--JavaScript一些奇淫技巧的实现方法(一)简短的sleep函数,获取时间戳
一.前言 有些东西很好用,但是你未必知道:有些东西你可能用过,但是你未必知道原理.实现一个目的有多种途径,俗话说,条条大路通罗马.发散一下大家的思维以及拓展一下知识面. 二.实现一个简短的sleep函 ...