MongoDB 查询运算符

简介

在 MongoDB 中,查询运算符用于指定查询条件,以从集合中检索特定的数据。查询运算符通常与查询文档一起使用,这些查询文档作为 find()findOne() 方法的参数传递。

基本查询运算符

$eq

$eq 运算符用于匹配等于某个值的字段。这是最常用的查询运算符之一。

示例:

上述代码将返回所有年龄为 30 的用户记录。

$ne

$ne 运算符用于匹配不等于某个值的字段。

示例:

上述代码将返回所有年龄不是 30 的用户记录。

$lt

$lt 运算符用于匹配小于某个值的字段。

示例:

上述代码将返回所有年龄小于 30 的用户记录。

$lte

$lte 运算符用于匹配小于或等于某个值的字段。

示例:

上述代码将返回所有年龄小于或等于 30 的用户记录。

$gt

$gt 运算符用于匹配大于某个值的字段。

示例:

上述代码将返回所有年龄大于 30 的用户记录。

$gte

$gte 运算符用于匹配大于或等于某个值的字段。

示例:

上述代码将返回所有年龄大于或等于 30 的用户记录。

范围查询运算符

$in

$in 运算符用于匹配字段值在指定范围内的文档。

示例:

上述代码将返回所有年龄为 25、30 或 35 的用户记录。

$nin

$nin 运算符用于匹配字段值不在指定范围内的文档。

示例:

上述代码将返回所有年龄不是 25、30 或 35 的用户记录。

模糊查询运算符

$regex

$regex 运算符用于进行正则表达式匹配。

示例:

上述代码将返回所有名字以 "John" 开头的用户记录。

$options

$options 运算符可以与 $regex 一起使用,以指定正则表达式的选项。

示例:

上述代码将返回所有名字以 "john" 开头(忽略大小写)的用户记录。

数组查询运算符

$all

$all 运算符用于匹配包含所有指定元素的数组字段。

示例:

上述代码将返回所有标签包含 "student" 和 "young" 的用户记录。

$elemMatch

$elemMatch 运算符用于匹配数组中的元素,该元素满足所有指定的条件。

示例:

上述代码将返回所有标签包含 "student" 并且年龄小于 30 的用户记录。

$size

$size 运算符用于匹配具有指定长度的数组字段。

示例:

上述代码将返回所有标签数量为 3 的用户记录。

复杂查询运算符

$and

$and 运算符用于组合多个查询条件,并且所有条件都必须满足。

示例:

上述代码将返回所有年龄在 20 到 30 之间的用户记录。

$or

$or 运算符用于组合多个查询条件,并且只要满足其中一个条件即可。

示例:

上述代码将返回所有年龄小于 30 或者大于 40 的用户记录。

$not

$not 运算符用于否定一个查询条件。

示例:

上述代码将返回所有年龄不小于 30 的用户记录。

$nor

$nor 运算符用于组合多个查询条件,并且所有条件都不能满足。

示例:

上述代码将返回所有年龄不在 20 到 30 之间并且年龄也不大于 40 的用户记录。

存在性查询运算符

$exists

$exists 运算符用于检查字段是否存在。

示例:

上述代码将返回所有具有 "name" 字段的用户记录。

$type

$type 运算符用于检查字段的类型。

示例:

上述代码将返回所有 "age" 字段为整型的用户记录。

聚合框架中的查询运算符

$match

$match 运算符用于过滤聚合管道中的数据。

示例:

上述代码将过滤出年龄小于 30 的用户记录。

$project

$project 运算符用于选择和修改输出文档的结构。

示例:

上述代码将只输出 "name" 和 "age" 字段,并且不输出 "_id" 字段。

$group

$group 运算符用于对数据进行分组和汇总。

示例:

上述代码将按年龄分组并统计每个年龄段的用户数量。

$sort

$sort 运算符用于对结果进行排序。

示例:

上述代码将按年龄降序排列结果。

以上是 MongoDB 查询运算符的详细介绍。通过灵活运用这些运算符,你可以构建复杂且高效的查询来满足各种需求。

上一篇: MongoDB 删除文档
纠错
反馈