我正在 Mongoose 中执行 findOneAndUpdate:
Item.findOneAndUpdate({_id: 12345}, updateDoc, function (err, updatedItem) {
//....
});
但是我想完全覆盖该文档。根据 Mongoose 文档:
All top level keys which are not atomic operation names are treated as set operations:
无论如何,我是否可以覆盖该行为,以便 Mongoose 不会对顶级元素发出 $set 操作,而是覆盖文档?
最佳答案
最近添加了“覆盖”选项。它会替换整个文档,这是 Mongo 默认更新的方式。它的使用方式如下:
Item.findOneAndUpdate({_id: 12345}, updateDoc, {overwrite: true}, function(err, updatedItem) {
....
});
我在 GitHub 中找到了有关此功能的一些历史记录 Issues面积。
关于node.js - 更新时覆盖文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17798324/