findOneAndUpdate和更新的猫鼬差异

时间:2015-08-04 12:00:40

标签: mongodb mongoose

findOneAndUpdate和更新的区别是什么? 两者都接受查询和doc更新的标准。

3 个答案:

答案 0 :(得分:44)

这里有.update().findAndModify()的相应文档,这是.findOneAndUpdate()的根方法。

但主要区别在于:

  • update():用于针对与集合中的查询条件匹配的“一个或多个”文档执行原子更新操作。它返回其响应中修改过的文档的数量。

  • findOneAndUpdate():目的是在“单数”文档上处理更新语句,以及检索“单数”文档的内容。返回的状态取决于传递给操作的“new”选项的值。返回true“已修改”文档的位置。在任何修改之前返回false“原始”文档的位置。后一种形式是默认选项。

简而言之。一个是用“批量”修改而不用担心结果中的文档内容。另一个是修改单个文档并在结果中返回文档内容。

这就是区别。

答案 1 :(得分:5)

.findOneAndUpdate方法发出mongodb .findAndModify更新命令,并将找到的文档(如果有)返回给回调,如果new选项为true,则返回修改后的文档而不是原始文档 String packageName="javax.mail.internet."; String simpleClassName="MimeMultipart"; String className=packageName+simpleClassName; Class<?> cl=Class.forName(className); URL url=cl.getResource(simpleClassName+".class"); System.out.println("url="+url); .updateupdate()操作执行查询。

答案 2 :(得分:1)

请注意,findOneAndXXX方法中有一个选项returnNewDocument,其默认值为true。如果您使用的是node.js驱动程序,则这些选项称为returnOriginal