如何在文档中将日期增加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)
答案 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
到目前为止,我自己还没有尝试过,但是看起来很有希望;-)