在更新时覆盖文档

时间:2013-07-22 22:10:30

标签: node.js mongoose

我在mongoose中做了一个findOneAndUpdate:

Item.findOneAndUpdate({_id: 12345}, updateDoc, function (err, updatedItem) {
   //....
});

但是我想完全覆盖该文档。根据mongoose docs:

  

所有非原子操作名称的顶级键都被视为   设置操作:

无论如何,我可以覆盖这种行为,以便mongoose不会为顶级元素发出$ set操作,而是覆盖文档?

1 个答案:

答案 0 :(得分:9)

最近添加了“覆盖”选项。它取代了整个文档,Mongo默认更新的方式。它的使用方式如下:

Item.findOneAndUpdate({_id: 12345}, updateDoc, {overwrite: true}, function(err, updatedItem) {
....
});

我在GitHub Issues区域找到了有关此功能的一些历史记录。