将数据写入 MongoDB
Overview
在此页面上,您可以查看可复制的代码示例,这些示例展示了将数据写入MongoDB的常见MongoDB PHP库方法。
提示
要了解有关此页面上显示的任何方法的更多信息,请参阅每个部分中提供的链接。
要使用本页中的示例,请将代码示例复制到示例应用程序或您自己的应用程序中。 确保设立MONGODB_URI
环境变量设置为 部署的连接string MongoDB,并将<database>
和<collection>
占位符替换为目标命名空间的值。
示例应用程序
您可以使用以下示例应用程序来测试本页上的代码示例。 要使用示例应用程序,请执行以下步骤:
确保您已在项目中安装MongoDB PHP库。 要学习;了解有关安装MongoDB PHP库的更多信息,请参阅下载和安装指南。
复制以下代码并将其粘贴到新的
.php
文件中。从此页面复制代码示例,并将其粘贴到文件中的指定行。
1 2 3 require __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
insertOne
以下代码演示如何将单个文档插入集合:
$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()
方法的更多信息,请参阅“插入文档”指南。
updateOne
以下代码演示如何通过创建或编辑字段来更新集合中的单个文档:
$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()
方法的更多信息,请参阅更新文档指南。
replaceOne
以下代码演示如何将集合中的单个文档替换为另一个文档:
$result = $collection->replaceOne( ['<field to match>' => '<value to match>'], [ '<new field 1>' => '<value 1>', '<new field 2>' => '<value 2>', ], );
要了解有关MongoDB\Collection::replaceOne()
方法的更多信息,请参阅替换文档指南。
deleteOne
以下代码演示如何删除集合中的单个文档:
$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的更多信息,请参阅“存储大型文件”指南。