博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Mongo索引
阅读量:4474 次
发布时间:2019-06-08

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

  • 索引
    • id索引
      • 默认建立的唯一索引
    • 单建索引
      • 最普通的索引,不会自动创建
    • 多键索引
      • 值具有多个记录
    • 复合索引
      • 查询条件不止一个的时候,用复合索引
    • 过期索引
      • db.test.ensureIndex({time:1},{expireAfterSeconds:30})
      • 过期索引(登录信息,或者日志信息),必须是指定的时间类型(isoDate)
      • 过期索引不能是符合索引
      • 删除时间不是精确的,mongodb每60秒扫描一次
    • 全文索引
      • 对字符串与字符创数组创建全文可搜索的索引
      • db.local_2.ensureIndex({"article":"text"})
      • db.local_2.find({$text:{$search:"aa bb cc"}}) //只有一个全文索引,或查询
      • db.local_2.find({$text:{$search:"\"aa\" \"bb\"" cc"}})同时包含有aa bb的
      • db.test.find({$text:{$search:"aa bb"}},{score:{$meta:"textScore"}}).sort({score:{$meta:"textScore"}})相似度索引
        • 全局索引的限制:
        • 每次查询,只能指定一个$text查询
        • $text查询不能出现在$nor查询中
        • 查询中如果包含了$text, hint不再起作用
    • 地理位置索引
      • 地理位置索引
        • 概念:将一些点的位置存储在MongoDB中,创建索引后,可以按照位置来查找其他点
      • 子分类
        • 2d索引:用于存储和查找平面上的点
          • $near查询 :查询距离某个点最近的点(会返回100个最近的点)
            • db.location.find({w:{$near:[1,1],$maxDistance:10}}) maxDistance:最大距离10的点,near不支持minDistance
          • $getWidthin查询:查询某个形状内的点
            • $box:矩形,使用
              • {$box:[[,],[,]]}//第一个坐标代表左边界,第二个右边界db.collection.find({w:{$geowithin:{$box:[[1,1],[2,3]]}}})
            • $center:圆形
              • {$center:[[,],r]}//r为圆的半径
            • $polygon:多边形
              • {$polygon:[[,],[,],[,]]}
            • db.runCommand({
              • getNear:, //指定数据集合
              • near:[x,y], //查询坐标
              • minDistance: (对2d索引无效,对2dsphere有效)
              • maxDistance: //返回符合文档最多的数量
              • num:2 //返回的数量})
        • 2dsphere索引:用于存储和查找球面上的点
          • db.collection.ensureIndex({w:"2dsphere"})
      • 两种查找方式
        • 查找距离某个点一定距离内的点
        • 查找包含在某个区域内的点 *索引的属性
    • 索引的创建db.collenction.ensureIndex({param1},{param2})-->param1是索引的值,param2是索引的属性。
    • 名字:name
      • db.collenction.ensureIndex({x:1,y:2,z:3},{name:"normal_index"}) //指定名字
      • db.collenction.dropIndex("normal_index") //可用名字代替删除索引
    • 唯一性
      • db.集合名.ensureIndex({age:1}, {unique: true/false});
    • 稀疏性
      • db.test.createIndex({xm:1},sparse:true)//默认否

转载于:https://www.cnblogs.com/oldzhang1222/p/7977753.html

你可能感兴趣的文章
Code obfuscation
查看>>
node.js系列(实例):原生node.js实现接收前台post请求提交数据
查看>>
SignalR主动通知订阅者示例
查看>>
用python实现矩阵转置
查看>>
linux 小技巧(磁盘空间搜索)
查看>>
iOS开发——捕获崩溃信息
查看>>
(for 循环)编程找出四位整数 abcd 中满足 (ab+cd)(ab+cd)=abcd 的数
查看>>
tomcat使用spring-loaded实现应用热部署
查看>>
boost1.53中的lock-free
查看>>
链表_leetcode203
查看>>
基于ajax 的 几个例子 session ,ajax 实现登录,验证码 ,实现ajax表单展示
查看>>
连接不上sql server服务器的解决方案
查看>>
【Java面试题】58 char型变量中能不能存贮一个中文汉字?为什么?
查看>>
C++ Primer 第六章 函数
查看>>
交互设计算法基础(3) - Quick Sort
查看>>
Ubuntu各种软件的安装
查看>>
java开发环境搭建-慕课网
查看>>
NOIP2015-D2T3运输计划
查看>>
Z :彻底了解指针数组,数组指针以及函数指针 [复
查看>>
2013年终总结
查看>>