博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Mongodb的索引--学习笔记(未完)
阅读量:6587 次
发布时间:2019-06-24

本文共 3782 字,大约阅读时间需要 12 分钟。

全文索引

建立方法:--在articles集合的key字段上创建全文索引db.articles.ensureIndex({key:"text"})--在articles集合的key_1,key_2字段上创建全文索引db.articles.ensuereIndex({key_1:"text",key_2:"text"})--在articles集合的所有字段上创建全文索引db.articles.ensuereIndex({"$**":"text"})--在articles集合中的article字段上创建全文索引> db.articles.ensureIndex({"article":"text"});{        "createdCollectionAutomatically" : true,        "numIndexesBefore" : 1,        "numIndexesAfter" : 2,        "ok" : 1}> --插入演示数据db.articles.insert({"article":"aa bb"})db.articles.insert({"article":"aa bb cc "})db.articles.insert({"article":"aa bb cc dd"})db.articles.insert({"article":"aa bb cc rr"})使用全文索引查询--查询包含aa 或 bb 或 cc的文档db.articles.find({$text:{$search:"aa bb cc"}})--查询包含aa 或 bb 但不包含 cc的文档db.articles.find({$text:{$search:"aa bb -cc"}})--查询包含aa 、bb 且包含cc的文档db.articles.find({$text:{$search:"\"aa\" \"bb\" \"cc\""}})全文索引的相似度$meta操作符:{score:{$meta:"textScore"}}写在查询条件后面可以返回查询结果的相似度经常与sort一起使用--查询含有"aa bb"字段的文本,并返回查询结果的相似度> db.articles.find({$text:{$search:"aa bb"}},{score:{$meta:"textScore"}});{ "_id" : ObjectId("5798ad223206da9bc38b2370"), "article" : "aa bb cc dd", "score" : 1.25 }{ "_id" : ObjectId("5798ad293206da9bc38b2371"), "article" : "aa bb cc rr", "score" : 1.25 }{ "_id" : ObjectId("5798ad1b3206da9bc38b236f"), "article" : "aa bb cc ", "score" : 1.3333333333333333 }{ "_id" : ObjectId("5798ad143206da9bc38b236e"), "article" : "aa bb", "score" : 1.5 }{ "_id" : ObjectId("5798ae383206da9bc38b2372"), "article" : "aa", "score" : 1.1 }--根据相似度排序> db.articles.find({$text:{$search:"aa bb"}},{score:{$meta:"textScore"}}).sort({score:{$meta:"textScore"}});{ "_id" : ObjectId("5798ad143206da9bc38b236e"), "article" : "aa bb", "score" : 1.5 }{ "_id" : ObjectId("5798ad1b3206da9bc38b236f"), "article" : "aa bb cc ", "score" : 1.3333333333333333 }{ "_id" : ObjectId("5798ad223206da9bc38b2370"), "article" : "aa bb cc dd", "score" : 1.25 }{ "_id" : ObjectId("5798ad293206da9bc38b2371"), "article" : "aa bb cc rr", "score" : 1.25 }{ "_id" : ObjectId("5798ae383206da9bc38b2372"), "article" : "aa", "score" : 1.1 }> 全文索引使用的限制(版本2.6.5)1.每次查询,只能指定一个$text查询(一个集合只能创建一个全文索引)2.$text查询不能出现在$nor查询中3.查询中如果包含$text,hint不在起作用4.当前Mongodb的全文索引还不支持中文

索引属性

创建索引的格式:db.collection.ensureIndex({indexValue},{indexProperty})其中indexProperty比较重要的有:1.名字,name指定:  db.collection.ensureIndex({},{name:""})2.唯一性,unique指定:  db.collection.ensureIndex({},{unique:true/false})3.稀疏性,sparse指定  稀疏性指是否为文档中不存在的字段创建索引  db.collection.ensureIndex({},{sparse:true/false})4.是否定时删除,expireAfterSeconds指定:  TTL 过期索引

地理位置索引

地理位置索引    将一些点的位置存储到Mongodb中,创建索引后,可以按照位置来查找其他点子分类2d索引:用于存储和查找平面上的点2dsphere索引:用于存储和查找球面上的点查找方式1.查找距离某个点一定距离内的点2.查找包含在某区域内的点2d索引详解1.创建索引方式  db.collection.ensureIndex({w:"2d"})2.位置表示方式  经纬度[经度,纬度]3.取值范围  经度[-180,180] 纬度[-90,90]4.插入位置数据  >db.location.insert({w:[1,1]})  >db.location.insert({w:[1,2]})  >db.location.insert({w:[5,6]})  >db.location.insert({w:[200,1]}) #Mongodb会直接报错,经度超出范围  >db.location.insert({w:[180,100]}) #纬度超出范围,Mongodb并没有报错,但是后期查询会出现不可预知的错误。  >db.location.insert({w:[79,76]})5.查询方式    $near查询 查询距离某个点的最近点    >db.location.find({w:{$near:[1,1]}}) #默认返回100个    --可通过$maxDistance来限制查找的最远距离    >db.location.find({w:{$near:[1,1],$maxDistance:10}}) #限制查找最远距离为10    $geoWithin查询 查询某个形状内的点    形状有三种表示方式    1)$box:矩形,使用{$box:[[
,
],[
,
]]}表示,内部是两个坐标,第一个代表左边界,第二个代表右边界。 >db.collection.find({w:{$geoWithin:{$box:[[0,0],[3,3]]}}}) 2)$center:圆形,使用{$center:[[
,
],r]}表示,内部是圆心位置和半径。 >db.collection.find({w:{$geoWithin:{$center:[[0,0],5]}}}) 3)$polygon:多边形,使用{$polygon:[[
,
],[
,
],[
,
]]}表示,内部是坐标点,坐标点围成一个多边形。 >db.collection.find({w:{$geoWithin:{$polygon:[[0,0],[0,1],[2,5],[6,1]]}}}) geoNear查询 是对$near查询的补充 db.runCommand({ getNear:
, near:[x,y], minDistance:(对2d索引无效) maxDistance: num: })

 

转载地址:http://rlhno.baihongyu.com/

你可能感兴趣的文章
新华三:让地铁更智慧
查看>>
关于loadrunner的pacing值的总结
查看>>
京东金融创新”ABS云平台” 大数据提升直接融资效率
查看>>
明明是全闪存阵列,为何存储性能仍然不够快
查看>>
Spring AOP实现声明式事务代码分析
查看>>
赛拉弗光伏组件成功获日本JIS Q8901认证
查看>>
上世纪军用设备仍在继续使用,美军E-3G预警机升级改造后易被黑客攻击
查看>>
你知道云计算,但是你知道“云工作”吗?
查看>>
阿里:车联网将成新网络入口
查看>>
朝鲜黑掉韩国政府版 Word
查看>>
《现代体系结构上的UNIX系统:内核程序员的对称多处理和缓存技术(修订版)》——2.3 直接映射高速缓存...
查看>>
《Adobe After Effects CS5经典教程》——1.5 对合成图像作动画处理
查看>>
《Web前端工程师修炼之道(原书第4版)》——移动Web
查看>>
阿里合伙人邵晓锋:什么是创业者应该抵制的诱惑?
查看>>
LastPass 的开源替代品
查看>>
如何用开源经历为你的简历增加光彩
查看>>
《Windows Server 2012 Hyper-V虚拟化管理实践》一3.3 远程管理Hyper-V主机
查看>>
《c++语言导学》——1.3 Hello,World!
查看>>
租用服务器怎么免去后顾之忧?
查看>>
阿里云服务器创建历史功能介绍 快速创建云服务器
查看>>