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

如何为MongoDB现有文档添加基于内部date字段的timestamp?

给现有MongoDB文档批量设置createdAt字段

完全可以实现你的需求,通过批量更新操作就能把每个文档的createdAt字段值设为自身已有的date字段值,下面是具体操作方法:

1. MongoDB Shell 原生操作

直接用MongoDB Shell执行的话,需要用updateMany配合聚合管道(只有聚合管道更新才能引用当前文档的字段值):

db.reviews.updateMany(
  {}, // 匹配所有文档
  [
    { $set: { createdAt: "$date" } } // 将当前文档的date字段值赋值给createdAt
  ]
);

2. Mongoose 操作(对应你的Review模型)

如果用Mongoose操作,写法类似,同样要使用聚合管道形式的更新:

await Review.updateMany(
  {}, // 匹配所有文档
  [
    { $set: { createdAt: "$date" } }
  ]
);

注意:你示例里的写法没法实现字段间赋值,普通的$set更新不能引用当前文档的字段,必须用聚合管道的方式才行。

补充说明:

  • 执行完这次批量更新后,后续新建的文档会自动由Mongoose的timestamp功能生成createdAt和updatedAt字段。
  • 你的数据量只有约1000条,这个操作会很快完成,不用担心性能问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 05:02:07