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

如何使用同一条记录中的已有字段值更新MongoDB记录

解决MongoDB同文档字段赋值的问题

问题根源在于你用了普通字符串赋值,而非MongoDB支持的字段引用语法,且未使用聚合管道实现跨字段更新。

正确的更新语句

db.getCollection("MyCollection").updateMany(
  // 填写你的查询过滤条件
  { /* SOME LOGIC HERE */ },
  // 使用聚合管道完成字段赋值
  [
    { "$set": { "updatedTs": "$createdTs" } }
  ]
)

核心要点

  • 要引用当前文档的已有字段进行更新,必须把更新操作写成聚合管道数组(用[]包裹),不能用普通的对象形式。
  • 在聚合管道的$set里,用$字段名的格式就能直接调用同文档的对应字段值,这里$createdTs就是对当前文档createdTs字段的正确引用。
  • 使用聚合管道时,updateMany默认会更新所有符合查询条件的文档,所以multi: true参数可以省略(写了也不影响,但没必要)。

原代码的错误

  1. $$createdTs不是MongoDB的字段引用格式,直接加引号会被当成普通字符串存入字段;
  2. 普通的$set对象无法实现同文档字段间的赋值,必须依赖聚合管道语法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 11:37:48