如何在 MongoDB 中查找文档、更新文档并插入新文档?

Posted

技术标签:

【中文标题】如何在 MongoDB 中查找文档、更新文档并插入新文档?【英文标题】:How to find a document in MongoDB, update it, and insert a new document? 【发布时间】:2020-09-08 03:24:33 【问题描述】:

在 MongoDB 数据库中查找文档、对其进行更新然后将更新后的文档作为具有新 _id 的新文档插入的正确命令是什么? 原始文档应完全保持不变。

【问题讨论】:

【参考方案1】:

您使用的是 mongoose、MongoDB shell 还是 Compass? 如果你想找到一个文档并更新它,为什么你需要一个新的 id? 如果要更新现有文档,则 id 将保持不变,或者您可以找到现有文档并将其复制到新文档并更新新文档。

【讨论】:

实际上,我正在使用 pymongo 处理 python。显然,我可以找到一个文档,使用 python 更改它,然后插入新的。但我想知道 MongoDB 中是否有内置命令。 我对 python 命令不太熟悉。直接使用mongodb,可以使用“findOneAndUpdate”。这个链接有一些很好的例子和解释:docs.mongodb.com/manual/reference/method/…。或者您也可以使用:“findOneAndReplace”:docs.mongodb.com/manual/reference/method/…希望我正确理解您的问题 我认为这两个功能都会更改现有文档。我有兴趣保持现有文档完全不变并插入一个新文档。

以上是关于如何在 MongoDB 中查找文档、更新文档并插入新文档?的主要内容,如果未能解决你的问题,请参考以下文章

MongoDB命令查找单个文档并在更新中有条件语句

如何使用 C# 驱动程序在 MongoDB 中更新和更新多个文档

mongodb使用条件查找文档并更新相应文档中的另一个字段

如果存在,如何更新文档,如果在 mongodb 中不存在,如何将其插入?

如何在 MongoDB 缝合中插入文档并在字段上启用规则

运行MongoDB查询以更新循环中的序列字段