findOneAndUpdate和findOneAndReplace有什么区别?

Ars*_*yan 9 java mongodb mongodb-java

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

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

Kev*_*vin 14

findOneAndUpdate搜索给定的更新文档中的文件和更新只是entrys.发现的文件中的其他内容将保留.

findOneAndReplace搜索文件,删除一切这个文件里面,并将给定的替换文件的entrys.

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

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

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

请参阅:findOneAndUpdate文档findOneAndReplace文档

  • 好答案。还值得注意的是它们如何与相应的 HTTP 方法相匹配。`findOneAndReplace()` 与 `PUT` 匹配,而 `findOneAndUpdate()` 与 `PATCH` 匹配。 (4认同)