文档菜单
文档首页
/ / /
PHP 库手册
/

插入文档

本页内容

  • 概述
  • 示例数据
  • _id 字段
  • 插入单个文档
  • 插入多个文档
  • 修改插入行为
  • 示例
  • 附加信息
  • API 文档

在本指南中,您可以学习如何使用MongoDB PHP库通过执行插入操作向MongoDB集合中添加文档。

插入操作将一个或多个文档插入到MongoDB集合中。您可以通过以下方法执行插入操作:

  • MongoDB\Collection::insertOne()方法用于插入单个文档

  • MongoDB\Collection::insertMany()方法用于插入一个或多个文档

本指南中的示例使用来自Atlas示例数据集中的sample_restaurants数据库中的restaurants集合。要从您的PHP应用程序访问此集合,请实例化一个连接到Atlas集群的MongoDB\Client并将以下值分配给您的$collection变量

$collection = $client->sample_restaurants->restaurants;

要了解如何创建免费的MongoDB Atlas集群并加载数据集,请参阅Atlas入门指南。

在 MongoDB 集合中,每个文档 必须 包含一个具有唯一字段值的 _id 字段。

MongoDB 允许您以两种方式管理此字段

  • 自行设置每个文档的 _id 字段,确保每个值都是唯一的。

  • 让驱动程序自动为每个文档的 _id 字段生成唯一的 ObjectId 值。

除非您能保证唯一性,否则我们建议让驱动程序自动生成 _id 值。

注意

重复的 _id 值违反了唯一索引约束,这会导致驱动程序返回一个 MongoDB\Driver\Exception\BulkWriteException 错误。

有关 _id 字段的更多信息,请参阅 MongoDB 服务器手册中的 唯一索引 指南。

有关文档结构和规则的信息,请参阅 MongoDB 服务器手册中的 文档 指南。

要将单个文档添加到 MongoDB 集合中,请调用 MongoDB\Collection::insertOne() 方法并传递您要添加的文档。

以下示例将文档插入到 restaurants 集合中

$result = $collection->insertOne(['name' => 'Mongo\'s Burgers']);

要将多个文档添加到 MongoDB 集合中,请调用 MongoDB\Collection::insertMany() 方法,并传递一个包含您想要添加的文档列表的数组。

以下示例将两个文档插入到 restaurants 集合中

$restaurants = [
['name' => 'Mongo\'s Burgers'],
['name' => 'Mongo\'s Pizza']
];
$result = $collection->insertMany($restaurants);

您可以通过传递一个指定选项值的数组作为参数来修改 MongoDB\Collection::insertOne()MongoDB\Collection::insertMany() 方法的行为。以下表格描述了您可以设置的某些选项

字段
描述
bypassDocumentValidation
如果设置为 true,则允许写操作选择退出 文档级验证
默认值为 false
类型: bool
writeConcern
设置操作的写入关注点。
默认值为命名空间的写入关注点。
类型: MongoDB\Driver\WriteConcern
ordered
如果设置为 true,则在插入失败时操作停止插入文档。如果为 false,则在插入失败时继续插入剩余的文档。您不能将此选项传递给 insertOne() 方法。
默认值为 true
类型: bool
comment
要附加到操作的注释。有关更多信息,请参阅 MongoDB 服务器手册中的 插入命令字段 指南。
类型: 任何有效的 BSON 类型

以下代码使用 insertMany() 方法将三个新文档插入到集合中。由于在选项数组中将 bypassDocumentValidation 字段设置为 true,此插入操作绕过了文档级别的验证

$docs = [
['name' => 'Mongo\'s Burgers'],
['name' => 'Mongo\'s Pizza'],
['name' => 'Mongo\'s Tacos']
];
$result = $collection->insertMany($docs, ['bypassDocumentValidation' => true]);

要查看使用 MongoDB PHP 库插入文档的可运行代码示例,请参阅将数据写入 MongoDB.

要了解更多关于本指南中讨论的任何方法或类型的信息,请参阅以下 API 文档

返回

更新