【问题标题】:What's the difference between findOneAndUpdate and findOneAndReplace?findOneAndUpdate 和 findOneAndReplace 有什么区别?
【发布时间】:2016-08-25 19:37:54
【问题描述】:

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

我应该在什么情况下使用它们?

【问题讨论】:

标签: java mongodb mongodb-java


【解决方案1】:

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

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

例如: 你有一个文件{"name":"James", "age":"21"}

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

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

请参阅:findOneAndUpdate DocumentationfindOneAndReplace Documentation

【讨论】:

  • 好答案。还可能值得注意的是它们如何与相应的 HTTP 方法匹配。 findOneAndReplace()PUT 匹配,而 findOneAndUpdate()PATCH 匹配。
  • 在使用 replace 时,mongo 会聪明地重新索引吗?
猜你喜欢
  • 2018-04-25
  • 1970-01-01
  • 2015-10-26
  • 2010-10-02
  • 2011-12-12
  • 2010-09-16
  • 2012-03-14
  • 2012-02-06
  • 2011-02-25
相关资源
最近更新 更多