findOneAndUpdate和findOneAndReplace有什么区别?

21

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

在什么情况下应该使用每个函数?


1
findOneAndReplacefindOneAndUpdate 的区别。 - Ali Dehghani
1个回答

39

findOneAndUpdate 函数查找符合条件的文档,并只更新给定更新文档中的条目,找到的文档中的其他条目将保留。

findOneAndReplace 函数查找符合条件的文档,并删除其中所有内容,然后设置给定替换文档的条目。

例如:如果您有一个文档 {"name":"James", "age":"21"},使用带有更新文档 {"age":"22"}findOneAndUpdate 函数,将得到文档 {"name":"James", "age":"22"};如果使用带有替换文档 {"age":"22"}findOneAndReplace 函数,则会得到文档 {"age":"22"}(名称已被删除)。

参见:findOneAndUpdate 文档findOneAndReplace 文档


7
好的回答。值得一提的是它们如何与对应的HTTP方法匹配。findOneAndReplace() 匹配 PUT,而 findOneAndUpdate() 匹配 PATCH - jsstrn
使用replace时,Mongo会自动智能重新索引吗? - Chris

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接