db.collection.
insertMany
()document
writeConcern
ordered
true
。acknowledged
as true
如果操作使用写关注或false
运行如果写入关注被禁用 为_id
每个成功插入的文档ordered
设置为 false,则文档以无序格式插入,并且可以通过mongod重新排序以增加 performance。如果使用无序insertMany(),Applications 不应该依赖于插入的排序。100,000
。此值显示在isMaster.maxWriteBatchSize字段中。limit
,则 client 驱动程序将 group 分成较小的组,其计数小于或等于限制的 value。例如,对于100,000
的maxWriteBatchSize
value,如果队列包含200,000
操作,则驱动程序将创建 2 个组,每个组具有100,000
个操作。注意使用 high-level API 时,驱动程序仅将 group 分为较小的组。如果直接使用db.runCommand()(对于 example,在编写驱动程序时),MongoDB 在尝试执行超出限制的写入批处理时会抛出错误。
1MB
,则开始。_id
字段并为文档指定唯一的ObjectId。大多数驱动程序创建一个 ObjectId 并插入_id
字段,但如果驱动程序或 application 没有创建,mongod将创建并填充_id
。_id
字段,则_id
value 在集合中必须是唯一的,以避免重复的 key 错误。BulkWriteError
exception。writeConcernErrors
字段中,而所有其他错误显示在writeErrors
字段中。如果遇到错误,则显示成功写入操作的数量,而不是插入的_id 列表。有序操作显示遇到的单个错误,而无序操作显示 array 中的每个错误。db.collection.insertMany()
可以在多文档交易中使用。重要在大多数情况下,与单文档写入相比,多文档事务产生的性能成本更高,并且多文档事务的可用性不应替代有效的架构设计。在许多情况下, 非规范化数据模型(嵌入式文档和数组)将继续是您的数据和用例的最佳选择。也就是说,在许多情况下,适当地对数据建模将最大程度地减少对多文档交易的需求。有关其他事务使用方面的注意事项(例如运行时限制和操作日志大小限制),另请参见 生产注意事项。
products
集合。_id
字段的文档:_id
,mongod为每个文档创建并添加_id
字段,并为其分配唯一的ObjectId value。ObjectId
值特定于机器和 time。因此,您的值可能与 example 中的值不同。_id
字段的文档。 _id
的 value 在集合中必须是唯一的,以避免重复的 key 错误。_id
)插入重复的 value 会抛出 exception。以下尝试使用已存在的_id
value 插入文档:_id: 13
已存在,因此抛出以下 exception:_id: 13
的第一个文档将成功插入,但第二个 insert 将失败。这也将阻止插入队列中剩余的其他文档。ordered
到false
时,insert 操作将继续使用任何剩余文档。_id
字段和ordered: false
插入多个文档。 array 文档包含两个具有重复_id
字段的文档。_id
值,item: "medium box"
和item: "tape"
的文档无法插入nInserted
表示插入了剩余的 5 个文档。majority
majority
和wtimeout
100
:wtimeout
,则在wtimeout
期间过后将显示以下writeConcernError
。