findOneAndUpdate 和 findOneAndReplace 有什么区别?

What's the difference between findOneAndUpdate and findOneAndReplace?

我最近安装了 Java MongoDB 驱动程序 3.1.1 版本,我想知道 findOneAndUpdatefindOneAndReplace 之间有什么区别?

分别在什么情况下使用?

findOneAndUpdate 搜索文档并仅更新给定更新文档中的条目。找到的文档中的其他条目将保留。

findOneAndReplace 搜索文档,删除文档中的所有内容,并设置给定替换文档的条目。

例如: 您有一个文档 {"name":"James", "age":"21"}

如果你使用findOneAndUpdate功能更新文档{"age":"22"},你会得到文档{"name":"James", "age":"22"}

如果你用findOneAndReplace功能替换文档{"age":"22"},你会得到文档{"age":"22"}(名称已被删除)

参见:findOneAndUpdate Documentation and findOneAndReplace Documentation