在javascript中增加一个日期,以便更新MongoDB

Incrementing a date in javascript, in order to update MongoDB

本文关键字:日期 MongoDB 更新 一个 javascript 增加      更新时间:2023-09-26

在MongoDB集合中,我有3个对象。我需要更新每个对象中的一个变量(日期类型)。主要任务是增加对象的日期。例如:所有对象都有相同的变量:

"Time1" : ISODate("2016-01-12T21:37:46.738Z")

我的问题是用当前日期更新第一个对象,我手动这样做:

$db.getCollection('my.data')({'_id':ObjectId("52e637fca92cf1ec6a73c1e8")}, {$currentDate: {Time1: true}})

下一个是将第二个对象的日期增加1天,我的意思是用明天的日期更新它。我不能通过shell来完成,因为$inc不适用于Date类型。所以,我迷上了javascript

我找到了如何用java脚本获取它,但我不知道如何在一个脚本中收集所有这些。

var tomorrow = new Date();
tomorrow.setDate(today.getDate()+1);

谢谢你的帮助。

您可以对其他字段使用$set运算符,并在更新对象中使用$currentDate操作符:

var tomorrow = new Date();
tomorrow.setDate(tomorrow.getDate()+1);
var dayAfterTomorrow = new Date();
dayAfterTomorrow.setDate(dayAfterTomorrow.getDate()+2);
db.getCollection("my.data").update(
    { "_id": ObjectId("52e637fca92cf1ec6a73c1e8") },
    { 
        "$currentDate": { "Time1": true },
        "$set": {
            "Time2": tomorrow,
            "Time3": dayAfterTomorrow
        }
    }
)