在MongoDB中将日期增加一天

时间:2020-02-03 12:33:44

标签: mongodb mongodb-query

如何在文档中将日期增加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)

2 个答案:

答案 0 :(得分:1)

是的,在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] } } }
   ]
)

答案 1 :(得分:0)

否,您不能访问使用此简单表示法更新的记录的值。

您可能要尝试使用聚合管道(限于mongodb 4.2+),如下所示:https://docs.mongodb.com/manual/reference/method/db.collection.update/#update-with-aggregation-pipeline

到目前为止,我自己还没有尝试过,但是看起来很有希望;-)

相关问题