Mongo索引

  • 索引
    • 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