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

将数据写入 MongoDB

在此页面上

  • Overview
  • 示例应用程序
  • insertOne
  • 插入多个
  • updateOne
  • 更新多个
  • replaceOne
  • deleteOne
  • 删除多个
  • 批量写入
  • 存储大文件

在此页面上,您可以查看可复制的代码示例,这些示例展示了将数据写入MongoDB的常见MongoDB PHP库方法。

提示

要了解有关此页面上显示的任何方法的更多信息,请参阅每个部分中提供的链接。

要使用本页中的示例,请将代码示例复制到示例应用程序或您自己的应用程序中。 确保设立MONGODB_URI 环境变量设置为 部署的连接string MongoDB,并将<database><collection> 占位符替换为目标命名空间的值。

您可以使用以下示例应用程序来测试本页上的代码示例。 要使用示例应用程序,请执行以下步骤:

  1. 确保您已在项目中安装MongoDB PHP库。 要学习;了解有关安装MongoDB PHP库的更多信息,请参阅下载和安装指南。

  2. 复制以下代码并将其粘贴到新的.php文件中。

  3. 从此页面复制代码示例,并将其粘贴到文件中的指定行。

1<?php
2
3require __DIR__ . '/../vendor/autoload.php';
4
5$uri = getenv('MONGODB_URI') ?: throw new RuntimeException('Set the MONGODB_URI variable to your Atlas URI that connects to the sample dataset');
6$client = new MongoDB\Client($uri);
7
8$collection = $client->selectCollection('<database>', '<collection>');
9
10// Start example code here
11
12// End example code here

以下代码演示如何将单个文档插入集合:

$result = $collection->insertOne([
'<field name 1>' => '<value 1>',
'<field name 2>' => '<value 2>',
]);

要了解有关MongoDB\Collection::insertOne()方法的更多信息,请参阅“插入文档”指南。

以下代码演示了如何将多个文档插入到集合中:

$result = $collection->insertMany(
[
'<field name 1>' => '<value 1>',
'<field name 2>' => '<value 2>',
],
[
'<field name 1>' => '<value 1>',
'<field name 2>' => '<value 2>',
],
);

要了解有关MongoDB\Collection::insertMany()方法的更多信息,请参阅“插入文档”指南。

以下代码演示如何通过创建或编辑字段来更新集合中的单个文档:

$result = $collection->updateOne(
['<field to match>' => '<value to match>'],
['$set' => ['<field name>' => '<value>']],
);

要了解有关MongoDB\Collection::updateOne()方法的更多信息,请参阅更新文档指南。

以下代码演示如何通过创建或编辑字段来更新集合中的多个文档:

$result = $collection->updateMany(
['<field to match>' => '<value to match>'],
['$set' => ['<field name>' => '<value>']],
);

要了解有关MongoDB\Collection::updateMany()方法的更多信息,请参阅更新文档指南。

以下代码演示如何将集合中的单个文档替换为另一个文档:

$result = $collection->replaceOne(
['<field to match>' => '<value to match>'],
[
'<new field 1>' => '<value 1>',
'<new field 2>' => '<value 2>',
],
);

要了解有关MongoDB\Collection::replaceOne()方法的更多信息,请参阅替换文档指南。

以下代码演示如何删除集合中的单个文档:

$result = $collection->deleteOne(['<field name>' => '<value>']);

要了解有关MongoDB\Collection::deleteOne()方法的更多信息,请参阅“删除文档”指南。

以下代码演示如何删除集合中的多个文档:

$result = $collection->deleteMany(['<field name>' => '<value>']);

要了解有关MongoDB\Collection::deleteMany()方法的更多信息,请参阅“删除文档”指南。

以下代码展示了如何在单个批量操作中执行多个写入操作:

$result = $collection->bulkWrite(
[
[
'insertOne' => [
['<field name>' => '<value>'],
],
],
[
'replaceOne' => [
['<field to match>' => '<value to match>'],
[
'<first new field>' => '<value>',
'<second new field>' => '<value>',
],
],
],
[
'updateOne' => [
['<field to match>' => '<value to match>'],
['$set' => ['<field to update>' => '<value to update>']],
],
],
[
'updateMany' => [
['<field to match>' => '<value to match>'],
['$set' => ['<field to update>' => '<value to update>']],
],
],
[
'deleteOne' => [
['<field name>' => '<value>'],
],
],
[
'deleteMany' => [
['<field name>' => '<value>'],
],
],
]
);

要了解有关MongoDB\Collection::bulkWrite()方法的更多信息,请参阅批量写入指南。

以下代码展示了如何通过创建上传流在GridFS存储桶中存储文件:

$bucket = $client->selectDatabase('<database name>')->selectGridFSBucket();
$stream = $bucket->openUploadStream('<file name>');
fwrite($stream, '<data>');
fclose($stream);

要学习;了解有关GridFS的更多信息,请参阅“存储大型文件”指南。

后退

监控变更