You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MongoDB聚合project阶段如何动态拼接字段值生成新增返回字段

MongoDB 聚合$project阶段固定字符串与字段值拼接方案

在$project阶段实现固定字符串和已有字段值拼接,直接使用MongoDB内置的$concat字符串聚合操作符即可,具体实现如下:

实现代码

保持你原有聚合管道的前置阶段($match/$group等)逻辑不变,在$project阶段按如下写法配置即可得到目标结构:

db.你的业务集合名.aggregate([
  // 此处保留你原有的其他聚合阶段逻辑
  {
    $project: {
      total_price: 1, // 声明保留原有字段
      paymentStatus: 1,
      refundedAmount: 1,
      // 新增description拼接字段
      description: {
        $concat: [
          "Refunded ", // 固定字符串前缀
          // 数字类型字段必须先转字符串,否则$concat会抛出类型错误
          { $toString: "$refundedAmount" }
        ]
      }
    }
  }
])

注意事项

  • $concat操作符接收数组格式参数,会按数组元素顺序依次拼接所有内容,元素支持固定字符串、字段引用、其他合法字符串表达式。
  • 若你使用的MongoDB版本低于4.0(无$toString操作符),数字转字符串可以替换为{ $substr: ["$refundedAmount", 0, -1] }实现兼容。
  • 若后续需要追加拼接内容(比如金额单位),直接在$concat的数组中按顺序追加对应元素即可,例如拼接美元单位的写法为:
    description: {
      $concat: ["Refunded ", { $toString: "$refundedAmount" }, " USD"]
    }
    

运行上述聚合后,返回结果会完全匹配你给出的目标结构,每个文档的description字段会自动拼接对应文档的refundedAmount值。

内容的提问来源于stack exchange,提问作者kumol

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 17:06:26