ANNOUNCEMENT: Voyage AI joins MongoDB to power more accurate and trustworthy AI applications on Atlas.
Learn more
Docs 菜单

MongoDB\Collection::insertOne()

MongoDB\Collection::insertOne()

插入一个文档。

function insertOne(
array|object $document,
array $options = []
): MongoDB\InsertOneResult
$document : array|object
要插入到集合中的文档。
$options : array

指定所需选项的数组。

名称
类型
说明

bypassDocumentValidation

布尔

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

编解码器

MongoDB\Codec\DocumentCodec

用于对文档进行编码或解码的编解码器。此选项与 typeMap 选项互斥。

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

1.17 版本中的新增功能

comment

混合

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

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

1.13 版本中的新增功能

会话

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

1.3 版本中的新增功能

writeConcern

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

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

一个MongoDB\InsertOneResult 对象,其中封装了 MongoDB\Driver\WriteResult 对象。

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

MongoDB\Driver\Exception\BulkWriteException 与写入操作相关的错误。用户应检查 getWriteResult() 返回的值 以确定错误的性质。

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

如果 MongoDB\Driver\Exception\BulkWriteException 抛出,用户应调用 getWriteResult() 并检查返回的 MongoDB\Driver\WriteResult 对象以确定错误的性质。

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

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

<?php
$collection = (new MongoDB\Client)->test->users;
$insertOneResult = $collection->insertOne([
'username' => 'admin',
'email' => 'admin@example.com',
'name' => 'Admin User',
]);
printf("Inserted %d document(s)\n", $insertOneResult->getInsertedCount());
var_dump($insertOneResult->getInsertedId());

而输出将类似如下所示:

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