MongoDB学习笔记(四) | 青训营笔记

124 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 6 天

书接上一节,本节继续记录学习mongoDB时的学习笔记。这次的内容是对MongoDB数据库查询相关知识点的延伸。


  • $type

    • 基于BSON类型来检索集合中匹配的数据类型,并返回结果
    • 使用:db.集合名称.find({key:{$type:类型或数字}})
  • 索引

    • 原理:按着一定的算法对数据进行排序,查询数据时只需划定一个小区间便可返回对应的数据,大大地提升了查询效率。
    • 创建索引:db.集合名称.createIndex({key:rule},options)
      • options:
      ParameterTypeDescription
      backgroundBoolean建索引过程会阻塞其它数据库操作,background可指定以后台方式创建索引,即增加"background"可选参数。"background"默认值为false
      uniqueBoolean建立的索引是否唯一。指定为true创建唯一索引。默认值为false
      namestring索引的名称。如果未指定,MongoDB的通过连接索引的字段名和排序顺序生成一个索引名称
      sparseBoolean对文档中不存在的字段数据不启用索引;这个参数需要特别注意,如果设置为true的话,在索引字段中不会查询出不包含对应字段的文档.。默认值为 false
      expireAfterSecondsinteger指定一个以秒为单位的数值,完成 TTL设定,设定集合的生存时间
      vindex version索引的版本号。默认的索引版本取决于mongod创建索引时运行的版本
      weightsdocument索引权重值,数值在1到99,999 之间,表示该索引相对于其他索引字段的得分权重
      default_languagestring对于文本索引,该参数决定了停用词及词干和词器的规则的列表。默认为英语
      language_overridestring对于文本索引,该参数指定了包含在文档中的字段名,语言覆盖默认的language,默认值为language
    • 查看集合索引:db.集合名称.getIndexes()
    • 查看集合索引大小:db.集合名称.totalIndexSize()
    • 删除集合所有索引:db.集合名称.dropIndexes
    • 删除集合指定索引:db.集合名称.dropIndex("索引名称")
  • 聚合查询

    • 主要用于处理数据(求平均值、求和等),并返回计算结果
    • 语法
    db.集合名称.aggregate([{
    $group: //先进行分组{
    	_id: "$字段名", //标注以什么字段进行分组
    	"给分组之后的结果起名" : {
    		聚合表达式:{
    				"$要操作的字段名"
    		}
    	}
    }
    }])