rmdir.cn

逻辑查询操作符

逻辑与条件组合操作符

语法

{ <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"] } })