首页/数据/NoSQL 速查/聚合条件表达式 $cond / $ifNull / $switch
本包目录(322 条)
MongoDB99 条
Elasticsearch89 条ClickHouse56 条时序与列式28 条选型与架构50 条

聚合条件表达式 $cond / $ifNull / $switch

管道内做条件分支:$cond 三元、$ifNull 兜底空值、$switch 多分支匹配,用于打标、分档与容错。

NoSQL 速查数据更新于 2026-10-12
$cond{ $cond: { if, then, else } } 或 [条件, 真值, 假值]
$ifNull{ $ifNull: [值, 兜底值] }
$switch{ $switch: { branches: [...], default } }

示例

示例
db.orders.aggregate([
  { $project: {
      sku: 1,
      grade: { $cond: [{ $gte: ["$qty", 100] }, "A", "B"] },
      note: { $ifNull: ["$remark", "-"] }
  } }
])
$switch 的分支按顺序求值,命中即停;default 可选,缺失且未命中时该字段不出现在结果里。

易错点

  • $cond 数组写法里条件必须是单表达式,嵌套多层时优先 $switch 保持可读

数据来源与参考

  • MongoDB Manual: $cond / $ifNull / $switch
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌