我想更新MongoDB文档中的所有字段,并且我有一个包含所有这些字段的Javascript对象。我可以轻松键入每个字段以进行更新,但这似乎是很多手动工作,并且不可重用。我想做下面的事情,但这会创建一个对象,该对象包含名为newData的文档中的所有新字段数据。

我试过了JSON.stringify变量,但格式不适合更新。

var newData = {
   _id:ObjectId("53245234..."),
   id: 88888,
   firstData: "someData",
   secondData: 787855,
   thirdData: [ 45,17,12,234]
};
var collection = db.get('CollectionToUpdate');

//strip out dB id so as not to overwrite it, possibly not needed
if ("_id" in newData) {
  delete newData["_id"];
}

//find the correct document based on program generated id and update
collection.update({id: newData.id}, {
   newData
})

最佳答案

如果您相信newData不会有您不需要的任何键(例如更新运算符),则应该可以使用:

var collection = db.get('CollectionToUpdate');
collection.update({id: newData.id}, newData)


请注意,这将替换文档。我认为这就是“更新所有字段”的意思。 update不替换“ _id”。

Documentation for update

关于javascript - 使用Javascript对象更新文档中的所有字段,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54067214/

10-12 15:43