2017-04-21 53 views
0

我有一个MongoDB集合,我正在更新。此刻,我只能更新它,如果我专门设置我想更新其值 - 例如:如何使用JS/JSON对象更新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中的方式。

很多谢谢。

回答

0

基于this answer

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

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

完美。谢谢。 – xn139