node.js - 更新时覆盖文档

标签 node.js mongoose

我正在 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/

相关文章:

javascript - 为什么我在浏览器中看不到我的应用程序渲染(Marionette.js 教程)?

javascript - 在 Node js 中如何获取证书颁发机构 key 标识符(AKI)?

javascript - 为什么使用 Node JS 创建 REST API 和 MVC Web 应用程序

Mongoose :如何使用模式字段作为另一个字段的枚举?

node.js - Nodejs+ Mongoose : find and update

javascript - promise 完成后导出模块

javascript - "user is not associated to feed!"sequelizejs

mongodb - 合并 MongoDB 中的两个 $lookup 集合

node.js - 如何过滤 Mongoose changeStream

node.js - 由于空数组包含电子邮件为空的文档,MongoDB错误E11000重复键错误集合