在 MongoDB 中将一天增加到日期

Rit*_*uci 3 mongodb mongodb-query

如何在文档中将日期增加 7 天,而无需手动设置日期?

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

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

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

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

Wer*_*eit 5

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

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

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

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