我想更新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/