这是我参与「第五届青训营 」伴学笔记创作活动的第 6 天
书接上一节,本节继续记录学习mongoDB时的学习笔记。这次的内容是对MongoDB数据库查询相关知识点的延伸。
-
$type
- 基于BSON类型来检索集合中匹配的数据类型,并返回结果
- 使用:
db.集合名称.find({key:{$type:类型或数字}})
-
索引
- 原理:按着一定的算法对数据进行排序,查询数据时只需划定一个小区间便可返回对应的数据,大大地提升了查询效率。
- 创建索引:
db.集合名称.createIndex({key:rule},options)- options:
Parameter Type Description background Boolean 建索引过程会阻塞其它数据库操作,background可指定以后台方式创建索引,即增加"background"可选参数。"background"默认值为false unique Boolean 建立的索引是否唯一。指定为true创建唯一索引。默认值为false name string 索引的名称。如果未指定,MongoDB的通过连接索引的字段名和排序顺序生成一个索引名称 sparse Boolean 对文档中不存在的字段数据不启用索引;这个参数需要特别注意,如果设置为true的话,在索引字段中不会查询出不包含对应字段的文档.。默认值为 false expireAfterSeconds integer 指定一个以秒为单位的数值,完成 TTL设定,设定集合的生存时间 v index version 索引的版本号。默认的索引版本取决于mongod创建索引时运行的版本 weights document 索引权重值,数值在1到99,999 之间,表示该索引相对于其他索引字段的得分权重 default_language string 对于文本索引,该参数决定了停用词及词干和词器的规则的列表。默认为英语 language_override string 对于文本索引,该参数指定了包含在文档中的字段名,语言覆盖默认的language,默认值为language - 查看集合索引:
db.集合名称.getIndexes() - 查看集合索引大小:
db.集合名称.totalIndexSize() - 删除集合所有索引:
db.集合名称.dropIndexes - 删除集合指定索引:
db.集合名称.dropIndex("索引名称")
-
聚合查询
- 主要用于处理数据(求平均值、求和等),并返回计算结果
- 语法
db.集合名称.aggregate([{ $group: //先进行分组{ _id: "$字段名", //标注以什么字段进行分组 "给分组之后的结果起名" : { 聚合表达式:{ "$要操作的字段名" } } } }])