对于 AI 代理:可在 https://www.mongodb.com/zh-cn/docs/llms.txt 获取文档索引—通过在任何 URL 路径后添加 .md 可获取所有页面的 Markdown 版本。
Docs 菜单

Bulk.insert()(mongosh方法)

提示

MongoDB 还提供了 Mongo.bulkWrite() 方法用于执行批量写入操作。

Bulk.insert(<document>)

将插入操作添加到批量操作列表中。

Bulk.insert() 接受以下参数:

Parameter
类型
说明

doc

文档

要插入的文档。文档大小必须小于或等于最大 BSON 文档大小。

此命令可用于以下环境中托管的部署:

  • MongoDB Atlas: The fully managed service for MongoDB deployments in the cloud

注意

This command is supported in all MongoDB Atlas clusters. For information on Atlas support for all commands, see Unsupported Commands.

即使在插入过程中遇到服务器错误,某些文档也可能已插入。

插入成功后,系统会返回 ,即已插入集合的文档数。如果插入操作因副本集状态更改而中断,系统可能会继续插入文档。因此,报告的文档可能少于实际插入的文档。

如果某操作在已索引字段上插入大量随机数据(例如,哈希索引),插入性能可能会降低。随机数据的批量插入会创建随机索引条目,从而增加索引的大小。如果索引达到需要每次随机插入都访问不同索引条目的大小,则插入操作会导致较高的 WiredTiger 缓存逐出和替换速度。发生这种情况时,索引不再完全位于缓存中,而是在磁盘上更新,这会降低性能。

要提高在已索引字段上批量插入随机数据的性能,可以采用以下两种方法之一:

  • 删除索引,然后在插入随机数据后重新创建该索引。

  • 将数据插入一个空的无索引集合。

批量插入后创建索引会对内存中的数据排序并对所有索引执行有序插入。

以下示例为 items 集合初始化 Bulk() 操作构建器,并添加一系列插入操作以添加多个文档:

var bulk = db.items.initializeUnorderedBulkOp();
bulk.insert( { item: "abc123", defaultQty: 100, status: "A", points: 100 } );
bulk.insert( { item: "ijk123", defaultQty: 200, status: "A", points: 200 } );
bulk.insert( { item: "mop123", defaultQty: 0, status: "P", points: 0 } );
bulk.execute();
给本页内容打分