首页 > 解决方案 > 在 MongoDB 中将日期递增到日期

问题描述

如何在无需手动设置日期的情况下将文档中的日期增加 7 天?

Collection Data:
{
    "_id" : ObjectId("5e302f83edd1fd00125abbf9"),
    "dateTransferred" : 2020-01-26T00:00:00.000+00:00
}

我可以使用以下方法轻松更新集合:

db.data.updateMany(
  {},
  {
    "$set": { "dateTransferred": new ISODate("2020-02-03T03:34:54Z") }
  }
)

有没有办法可以动态更新它(类似于 DateAdd)

标签: mongodbmongodb-query

解决方案


是的,在 MongoDB 4.2+ 中,您可以像这样更新它:

db.col.updateOne(
   { "_id": ObjectId("5e302f83edd1fd00125abbf9") },
   [
      { $set: { dateTransferred: { $add: ["$dateTransferred", 1000 * 60 * 60 * 24] } } }
   ]
)

当然,如果您想更新所有文档,那将是

db.col.updateMany(
   {},
   [
      { $set: { dateTransferred: { $add: ["$dateTransferred", 1000 * 60 * 60 * 24] } } }
   ]
)

推荐阅读