rmdir.cn

db.collection.bulkWrite()

批量写入操作

语法

db.collection.bulkWrite([<op1>, <op2>, ...], <options>)

说明

bulkWrite 在一次操作中执行多个 insertOne、updateOne、updateMany、deleteOne、deleteMany、replaceOne 操作。相比逐条执行,批量写入可大幅减少网络往返,提升写入性能。支持有序和无序模式。

参数

  • insertOne

    插入单条文档

  • updateOne

    更新匹配的第一条文档

  • updateMany

    更新所有匹配文档

  • deleteOne

    删除匹配的第一条文档

  • deleteMany

    删除所有匹配文档

  • replaceOne

    替换匹配的整条文档

  • ordered

    true 按序执行(默认),false 并发出错继续

示例

混合批量操作

插入、更新、删除混合执行

db.orders.bulkWrite([ { insertOne: { document: { _id: 1, item: "A", qty: 10 } } }, { updateOne: { filter: { _id: 2 }, update: { $set: { status: "done" } } } }, { deleteOne: { filter: { _id: 3 } } } ])

无序批量写入

出错时继续执行其余操作

db.users.bulkWrite(operations, { ordered: false })