MongoDB 是一个基于文档的 NoSQL 数据库,它支持丰富的查询操作。在 MongoDB 中,你可以使用各种查询操作符和操作来执行复杂查询。以下是一些常见的复杂查询方法:
比较查询操作符:用于比较字段值。
$eq:等于$ne:不等于$gt:大于$gte:大于等于$lt:小于$lte:小于等于逻辑查询操作符:用于组合多个查询条件。
$and:与(所有条件都必须满足)$or:或(任意一个条件满足即可)$not:非(不满足条件)字段模式匹配:用于匹配字段值的特定模式。
$regex:正则表达式匹配$options:正则表达式选项(如 i 表示忽略大小写)范围查询:用于查询某个字段的指定范围内的值。
$gte 和 $lte:范围查询$in:包含某个值列表$nin:不包含某个值列表文档结构查询:用于查询嵌套文档的字段值。
$elemMatch:匹配数组中的元素$exists:检查字段是否存在$type:检查字段类型聚合查询:用于对数据进行分组、排序、计算等操作。
$group:按指定字段分组$sort:对结果进行排序$project:选择或排除字段$unwind:将数组字段拆分为多个文档$limit:限制查询结果数量$skip:跳过指定数量的文档$match:过滤聚合结果$addFields:添加新字段$replaceRoot:替换文档根节点以下是一个复杂的查询示例,用于查找年龄大于 18 岁且名字包含 “John” 的用户,并按年龄降序排列:
db.users.find({ $and: [ { age: { $gt: 18 } }, { name: { $regex: "John", $options: "i" } } ] }).sort({ age: -1 }) 这个查询使用了 $and 操作符来组合两个条件,$regex 来进行正则表达式匹配,以及 sort() 方法来对结果进行排序。你可以根据需要组合这些操作符来执行更复杂的查询。