在使用带有dateFromString的聚合后,是否有一种方法可以更新许多内容。
我有一个字符串格式的日期,并且想将状态更新为“过期”(如果该日期超过90天)。
Object
{ "_id": "apples", "dateLastUpdated": "2019-04-04T16:50:37.018Z", status:"Active" }
{ "_id": "bananas", "dateLastUpdated": "2019-04-04T16:50:37.018Z", status:"Active" }
{ "_id": "oranges", "dateLastUpdated": "2018-04-04T16:50:37.018Z", status:"Active" }
{ "_id": "avocados", "dateLastUpdated":"2018-04-04T16:50:37.018Z", status:"Active"}
这是行不通的,我认为这可能是因为我需要首先转换日期,我知道如何执行此操作的唯一方法是使用agrigrigate和dateFromString,但随后又不知道如何将更新与它。
var expDate = new Date();
expDate.setDate(expDate.getDate() - 90);
db.collection('shop').updateMany(
{ dateLastUpdated: { $gt: expDate }},
{$set: { "status": "Expired" }},
{ upsert: false }
);