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

如何在MongoDB中对集合内所有文档的日期字段进行偏移调整?

MongoDB 4.4.3:批量偏移文档日期字段30天的方法

针对演示站点静态数据过期的问题,你可以通过MongoDB的批量更新命令,将指定日期字段(如dateCreated和expirationDate)统一向后偏移30天。以下是具体操作:

方法一:使用$dateAdd(推荐,4.4+支持)

$dateAdd是MongoDB 4.4新增的日期操作符,能直观地按天数偏移日期,无需手动计算毫秒数:

db.yourCollectionName.updateMany(
  // 匹配条件:空对象表示更新所有文档,可按需修改(比如只更新EXPIRING_SOON类型)
  {},
  [
    {
      $set: {
        dateCreated: { $dateAdd: { startDate: "$dateCreated", unit: "day", amount: 30 } },
        expirationDate: { $dateAdd: { startDate: "$expirationDate", unit: "day", amount: 30 } }
      }
    }
  ]
)

如果仅需更新特定类型文档,比如itemType为EXPIRING_SOON的,将匹配条件改为:

{ itemType: "EXPIRING_SOON" }

方法二:使用$add计算毫秒数

若习惯传统数值计算方式,可通过$add给日期加上30天对应的毫秒数(30×24×60×60×1000 = 2592000000):

db.yourCollectionName.updateMany(
  {},
  [
    {
      $set: {
        dateCreated: { $add: ["$dateCreated", 2592000000] },
        expirationDate: { $add: ["$expirationDate", 2592000000] }
      }
    }
  ]
)

验证更新结果

执行更新后,可查询单条文档确认日期偏移效果:

db.yourCollectionName.findOne({ _id: "62bda37a4d28f5df2e0ab07f" })

查看返回结果中的dateCreated和expirationDate,应比原日期晚30天。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 05:35:26