我有一個貓鼬文檔,我想用另一個對象更新它的很多領域。像貓鼬 - 保存文檔Object.assign
Model.findById(_id, function (err, doc){
var updateData = {...data}
// i do not want to do
doc.foo = data.foo;
doc.bar = data.bar;
// i need something like
doc.save(updateData)
// or
doc.update(updateData)
// or
doc = {...doc, ...updateData}
doc.save();
});
updateData是一個對象,包含我需要在doc中更新的所有數據。
沒有發現任何文檔相關,最近的是找到一個和更新...
但我怕'Object.assign'可以覆蓋制定者/吸氣或貓鼬對象的任何重要屬性。這會發生? –
我認爲你應該可以通過'Object.assign' [文檔](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign)。 'Object.assign'在目標(在本例中爲你的文檔)的source和'set'上使用'get',因此它**指定**屬性經文只是複製它們,所以它應該遵守任何預定義的getter/setters – Ian
太棒了!我正在考慮使用擴展運算符,例如'{..doc,... data}',但這會創建另一個對象,並且不會保留貓鼬的文檔。 –