如何使用JS / JSON对象更新MongoDB集合?

时间:2017-04-21 23:52:00

标签: javascript node.js mongodb

我有一个MongoDB集合,我正在寻求更新。目前,如果我专门设置了我想要更新的值,我只能更新它 - 例如:

  $set: {someVariable: someValue}

我想使用对象进行更新 - 例如,如果我有:

   data = {someVariable1: someValue, someVariable2: someValue}

我将其传递给$set参数,它应该更新这些参数。

有没有办法做到这一点?目前,如果我只是将该数据传递到$set参数,它会增加一个额外的值,如下所示:

"_id" : "xxxxxxxxxx",
"someVariable1": "someValue", 
"someVariable2": "someValue",
"data" : {
    "someVariable1": "someValue", 
    "someVariable2": "someValue"
}

这是我的代码段:

db.collection('test').updateOne(
        {_id: id},
        {
            $set: {
                data
            },
            $currentDate: {
                "lastModified": true
            }
        }, (err, result) => {
            assert.equal(err, null);
            callback(null, result);
        }
    )

其中数据如上所述。

顺便说一下,这是在Node.js中。

非常感谢。

1 个答案:

答案 0 :(得分:0)

基于this answer

您可以通过删除数据周围的括号来完成它:

$set: data,
$currentDate: {
    "lastModified": true
}