为什么mongodb bulkWrite不支持insertMany?

时间:2019-04-26 10:18:35

标签: mongodb

Mongodb db.collection.bulkWrite()支持updateMany,deleteMany。有什么理由不支持insertMany吗?

2 个答案:

答案 0 :(得分:3)

在这方面我不是权威人物,但是我假设 update delete 操作可以与 query 一起使用不匹配一个或多个现有文档。因此,从效率的角度(一旦发现一个就可以停止)和从一个角度来看,区分是要对一个还是许多文档应用更改是很有用的逻辑观点(您只想操纵第一个比赛)。

适用于不适用的插入操作;插入操作可插入一个文档,尤其是在批量写入的情况下,只需将多个 insert-one 操作传递给bulkWrite即可简单地插入多个文档;不需要多余的多次插入操作。

答案 1 :(得分:0)

通过提供insertMany操作我看不到任何意义,因为我们可以在bulkOperation()中使用多个insertOne来做到这一点,另一点是在更新/删除操作时,您提供的过滤条件可能会应用于一个或多个集合中的文件。您可以借助updateOne或updateMany的哪一个来决定是只更新一个(第一个匹配)还是满足过滤条件的所有文档。同样的事情也适用于删除,但是在插入的情况下,总是只有一个文档与更新或删除不同,那里可以有多个文档。

但是,它们可以提供insertMany(document数组),但是正如我们看到的那样,为简化操作,它们仅对所有可用操作限制一个对象。在updateOne / updateMany / insertOne中,您只能传递对象而不是数组。