Docs 菜单
Docs 主页
/ / /
PHP 库手册
/ /

MongoDB\Collection::insertMany()

MongoDB\Collection::insertMany()

插入多个文档。

function insertMany(
array $documents,
array $options = []
): MongoDB\InsertManyResult
$documents : array
要插入到collection中的文档。
$options : array

指定所需选项的数组。

名称
类型
说明

bypassDocumentValidation

布尔

如果为 true,则允许写入操作规避文档级验证。默认为 false

编解码器

MongoDB\Codec\DocumentCodec

Encode Data with Type Codecs 用于对文档进行编码或解码。此选项与 typeMap 选项互斥。

默认为集合的编解码器。默认 codec 选项的继承优先于 typeMap 选项的继承。

1.17 版本中的新增功能

comment

混合

允许用户指定任意注释,以帮助通过数据库分析器currentOp输出和日志跟踪操作。

自 MongoDB 4.4 起此选项可用,如果为旧服务器版本指定,则会在执行时导致异常。

1.13 版本中的新增功能

ordered

布尔

如果为 true:当单次写入失败时,操作将停止,不执行剩余写入,并抛出异常。

如果为 false:当单次写入失败时,操作将继续执行剩余的写入(如有),并抛出异常。

默认为 true

会话

与操作相关联的客户端会话。

1.3 版本中的新增功能

writeConcern

写关注用于操作。默认为集合的写关注。

无法将单个操作的写关注(write concern)指定为ACID 事务的一部分。相反,请在启动ACID 事务时设立writeConcern 选项。

一个MongoDB\InsertManyResult对象,其中封装了MongoDB\驱动程序\WriteResult对象。

MongoDB\Exception\InvalidArgumentException 用于与参数或选项解析相关的错误。

MongoDB\ 驱动程序\Exception\BulkWriteException 以了解与写入操作相关的错误。您可以检查getWriteResult()返回的值,以确定错误的性质。

MongoDB\ 驱动程序\Exception\RuntimeException 用于扩展级别的其他错误(例如连接错误)。

如果引发MongoDB\ 驱动程序\Exception\BulkWriteException,您可以调用 getWriteResult() 并检查返回的MongoDB\ 驱动程序\WriteResult对象,以确定错误的性质。

例如,写入操作可能已成功应用于主服务器,但未能满足写关注(例如复制时间太长)。或者,写入操作可能完全失败(例如唯一键冲突)。

对于批量写入,结果可能表明多个写入操作成功和/或出错。如果 ordered 选项为 true,则在遇到第一个错误和抛出异常之前,某些操作可能已成功。如果 ordered 选项为 false,则可能遇到多个错误。

以下操作将两个文档插入 test 数据库的 users 集合中:

<?php
$collection = (new MongoDB\Client)->test->users;
$insertManyResult = $collection->insertMany([
[
'username' => 'admin',
'email' => '[email protected]',
'name' => 'Admin User',
],
[
'username' => 'test',
'email' => '[email protected]',
'name' => 'Test User',
],
]);
printf("Inserted %d document(s)\n", $insertManyResult->getInsertedCount());
var_dump($insertManyResult->getInsertedIds());

而输出将类似如下所示:

Inserted 2 document(s)
array(2) {
[0]=>
object(MongoDB\BSON\ObjectId)#11 (1) {
["oid"]=>
string(24) "579a25921f417dd1e5518141"
}
[1]=>
object(MongoDB\BSON\ObjectId)#12 (1) {
["oid"]=>
string(24) "579a25921f417dd1e5518142"
}
}

后退

getWriteConcern()

在此页面上