NodeJS mongoose语句使用的更新查询中的{overwrite:true}

u0njafvf  于 2023-01-12  发布在  Node.js
关注(0)|答案(2)|浏览(77)

项目.updateOne({标题:请求参数标题},{标题:请求正文标题,内容:请求正文内容},{覆盖:真},函数(错误){}).{覆盖:真}的用法是什么?
我只想知道同样的效用是什么

pdtvr36n

pdtvr36n1#

updateOne()方法中的{overwrite: true}选项指定更新操作应该用更新后的文档替换现有文档。换句话说,更新操作将用新文档覆盖现有文档,而不是更新现有文档中的特定字段。
当您要用新文档完全替换现有文档,而不仅仅是更新现有文档中的某些字段时,此选项非常有用。
{overwrite: true}选项的updateOne()方法的完整语法:

Article.updateOne(
    {
        title: req.params.articleTitle
    },
    {
        title: req.body.title,
        content: req.body.content
    },
    { overwrite: true },
    function(err) { /* Perform any necessary actions here */ }
);
qjp7pelc

qjp7pelc2#

如果我们有这篇文章Article { title, content, image }
覆盖将用更新对象替换文档

Article.updateOne({ title }, { title: newTitle, content: newContent }, { overwrite: true })
// Will remove image: Article { newTitle, newContent }

如果不覆盖,将仅修改更新对象中的属性

Article.updateOne({ title }, { title, content })
// Will not remove image: Article { newTitle, newContent, image }

相关问题