【问题标题】:does findByIdAndUpdate overwrites data not modified?findByIdAndUpdate 会覆盖未修改的数据吗?
【发布时间】:2021-03-12 23:01:48
【问题描述】:

我正在使用 findByIdAndUpdate 来更新修改后的表单字段。

它会覆盖文档中甚至在表单中没有修改的所有字段吗?

【问题讨论】:

  • 看用法,有例子吗?

标签: node.js mongodb express mongoose


【解决方案1】:

根据 Mongoose 的文档:

通过文档的_id 字段发出 mongodb findAndModify 更新命令。 findByIdAndUpdate(id, ...) 等价于findOneAndUpdate({ _id: id }, ...)

找到一个匹配的文档,根据update 参数更新它,传递任何options,并将找到的文档(如果有)返回给回调。如果传递了callback,则执行查询。

简而言之,它只会根据您发送到findByIdAndUpdate 方法的对象覆盖所选文档的属性。如果您发送的对象没有修改属性,则该属性将保持原样。

延伸阅读:Mongoose's docs about the topic.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-03
    • 1970-01-01
    • 2018-10-20
    • 2018-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多