findOneAndUpdate和findOneAndReplace之间的区别是什么?

时间:2016-08-25 19:37:55

标签: java mongodb mongodb-java

我最近安装了Java MongoDB Driver 3.1.1版本,我想知道findOneAndUpdatefindOneAndReplace之间的区别是什么?

我应该在什么情况下使用每一个?

1 个答案:

答案 0 :(得分:12)

findOneAndUpdate搜索文档并仅更新给定更新文档中的任何内容。发现的文件中的其他内容将保留。

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

例如: 您有一份文件{"name":"James", "age":"21"}

如果您将findOneAndUpdate功能与更新文档{"age":"22"}一起使用,您将获得文档{"name":"James", "age":"22"}

如果您将findOneAndReplace功能与替换文档{"age":"22"}一起使用,您将获得文档{"age":"22"}(该名称已被删除)

请参阅:findOneAndUpdate DocumentationfindOneAndReplace Documentation