猫鼬的updateMany()和bulkWrite()有什么区别?

时间:2019-06-03 17:03:00

标签: mongodb mongoose

AFAIK,两个操作都可以更新多个文档。如果是这样,两者之间有什么区别?

1 个答案:

答案 0 :(得分:2)

只需在此处引用API docs

bulkWrite

  

发送多个insertOne,updateOne,updateMany,replaceOne,   deleteOne和/或deleteOne对MongoDB服务器的许多操作   命令。这比发送多个独立操作快   (例如)如果您使用create()),因为bulkWrite()只有一个   往返MongoDB。

     

猫鼬将对您提供的所有操作进行强制转换。

     

此函数不会触发任何中间件,也不会触发save()或   update()。如果您需要为每个文档触发save()中间件   改用create()。

updateMany

  

与update()相同,除了MongoDB 将更新所有匹配的文档   过滤器(而不是第一个)   多重选项。

     

注意updateMany不会触发更新中间件。使用pre('updateMany')   然后发布('updateMany')。

(重点是我的)

要查看使用示例,请查看函数的相应文档中提供的示例。