逻辑查询操作符
逻辑与条件组合操作符
语法
{ <operator>: [ { condition1 }, { condition2 }, ... ] }说明
逻辑操作符用于组合多个查询条件。$and/$or/$nor/$not 可实现复杂条件筛选,$exists 用于判断字段是否存在,$type 用于类型匹配。
参数
$and所有条件同时满足(多条件默认是 AND)
$or满足任一条件即可
$nor所有条件都不满足
$not取反单个条件
$exists判断字段是否存在
$type按 BSON 类型筛选
$expr在查询中使用聚合表达式
$regex正则表达式匹配
示例
$or 多条件
查询用户名为 alice 或邮箱包含 example 的用户
db.users.find({ $or: [{ username: "alice" }, { email: /example/ }] })$exists 字段存在性
查询有 phone 字段的用户
db.users.find({ phone: { $exists: true } })$regex 模糊搜索
正则搜索 name 以 A 开头
db.users.find({ name: { $regex: /^A/i } })$expr 聚合比较
查询花费金额超过预算的订单
db.orders.find({ $expr: { $gt: ["$amount", "$budget"] } })