MongoDB高级查询
MongoDB 的高级查询#
数据查询#
⽅法 find (): 查询
db.集合名称.find({条件⽂档})
⽅法 findOne ():查询,只返回第⼀个
db.集合名称.findOne({条件⽂档})
⽅法 pretty (): 将结果格式化
db.集合名称.find({条件⽂档}).pretty()
比较运算符#
- 等于: 默认是等于判断, 没有运算符
- ⼩于:
$lt (less than)
- ⼩于等于:
$lte (less than equal)
- ⼤于:
$gt (greater than)
- ⼤于等于:
$gte
- 不等于:
$ne
逻辑运算符#
逻辑运算符主要指与、或逻辑
- and:在 json 中写多个条件即可
- or: 使⽤ $or, 值为数组, 数组中每个元素为 json
范围运算符#
使⽤ $in
, $nin
判断数据是否在某个数组内
⽀持正则表达式#
使⽤ // 或 $regex 编写正则表达式
skip 和 limit#
⽅法 limit (): ⽤于读取指定数量的⽂档
⽅法 skip (): ⽤于跳过指定数量的⽂档
注意:先使用 skip 在使用 limit 的效率要高于前者
自定义查询#
由于 mongo 的 shell 是一个 js 的执行环境 使⽤ $where 后⾯写⼀个函数, 返回满⾜条件的数据
投影#
在查询到的返回结果中, 只选择必要的字段
命令:db.集合名称.find({},{字段名称:1,...})
参数为字段与值, 值为 1 表示显示, 值为 0 不显 特别注意: 对于_id 列默认是显示的, 如果不显示需要明确设置为 0
排序#
⽅法 sort (), ⽤于对 集进⾏排序
命令:db.集合名称.find().sort({字段:1,...})
参数 1 为升序排列 参数 - 1 为降序排列
统计个数#
⽅法 count () ⽤于统计结果集中⽂档条数
命令:db.集合名称.find({条件}).count()
命令:db.集合名称.count({条件})
消除重复#
⽅法 distinct()
对数据进⾏去重
命令:db.集合名称.distinct('去重字段',{条件})