MongoDB へのデータの書込み (write)
Overview
このページでは、 MongoDBにデータを書き込むための一般的なMongoDB PHPライブラリ メソッドを示すコピー可能なコード例があります。
Tip
このページに記載されているメソッドの詳細については、各セクションに提供されているリンクを参照してください。
このページの例を使用するには、コード例をサンプルアプリケーションまたは独自のアプリケーションにコピーします。 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
1 つを挿入
次のコードは、コレクションに単一のドキュメントを挿入する方法を示しています。
$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
次のコードは、フィールドを作成または編集して、コレクション内の 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()
メソッドについて詳しくは、ドキュメントの更新ガイドを参照してください。
replaceOne
次のコードは、コレクション内の単一のドキュメントを別のドキュメントに置き換える方法を示しています。
$result = $collection->replaceOne( ['<field to match>' => '<value to match>'], [ '<new field 1>' => '<value 1>', '<new field 2>' => '<value 2>', ], );
MongoDB\Collection::replaceOne()
メソッドの詳細については、ドキュメントの置換のガイドを参照してください。
deleteOne
次のコードは、コレクション内の 1 つのドキュメントを削除する方法を示しています。
$result = $collection->deleteOne(['<field name>' => '<value>']);
MongoDB\Collection::deleteOne()
メソッドの詳細については、ドキュメントの削除のガイドを参照してください。
複数削除
次のコードは、コレクション内の複数のドキュメントを削除する方法を示しています。
$result = $collection->deleteMany(['<field name>' => '<value>']);
MongoDB\Collection::deleteMany()
メソッドの詳細については、ドキュメントの削除のガイドを参照してください。
一括書き込み (write)
次のコードは、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の詳細については、「ラージ ファイルの保存 」ガイドを参照してください。