Docs Menu

MongoDB へのデータの書込み (write)

このページでは、 MongoDBにデータを書き込むための一般的なMongoDB PHPライブラリ メソッドを示すコピー可能なコード例があります。

Tip

このページに記載されているメソッドの詳細については、各セクションに提供されているリンクを参照してください。

このページの例を使用するには、コード例をサンプルアプリケーションまたは独自のアプリケーションにコピーします。 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()メソッドについて詳しくは、ドキュメントの挿入ガイドをご覧ください。

次のコードは、フィールドを作成または編集して、コレクション内の 1 つのドキュメントを更新する方法を示しています。

$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()メソッドの詳細については、ドキュメントの置換のガイドを参照してください。

次のコードは、コレクション内の 1 つのドキュメントを削除する方法を示しています。

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

MongoDB\Collection::deleteOne()メソッドの詳細については、ドキュメントの削除のガイドを参照してください。

次のコードは、コレクション内の複数のドキュメントを削除する方法を示しています。

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

MongoDB\Collection::deleteMany()メソッドの詳細については、ドキュメントの削除のガイドを参照してください。

次のコードは、1 つの一括操作で複数の書き込み操作を実行する方法を示しています。

$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の詳細については、「ラージ ファイルの保存 」ガイドを参照してください。