首页/数据/NoSQL 速查/$addFields / $set 添加计算字段
MongoDB99 条

$addFields / $set 添加计算字段

在保留原有字段的基础上新增或覆盖字段:$addFields 与 $set 等价($set 是 4.2 起的别名),随时可接其它阶段。

NoSQL 速查数据更新于 2026-10-12
语法{ $addFields: { <新字段>: <表达式> } }
别名$set 语义完全相同
用途派生指标、单位换算、打标

示例

示例
db.orders.aggregate([
  { $addFields: { total: { $multiply: ["$qty", "$price"] }, level: { $cond: [{ $gte: ["$qty", 10] }, "bulk", "retail"] } } },
  { $sort: { total: -1 } }
])
与 $project 的区别:$addFields 保留已有字段,$project 需要显式列出所有要保留的字段。

易错点

  • 字段名带点号会被解释为嵌套路径,想新增含点号的键名需要绕开

数据来源与参考

  • MongoDB Manual: $addFields
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌