Docs Menu
Docs Home
/ / /
PHP ライブラリ マニュアル

データベースとコレクション

項目一覧

  • Overview
  • データベースへのアクセス
  • コレクションにアクセスする
  • コレクションを作成する
  • コレクションの一覧を取得する
  • コレクションの削除
  • 読み取り操作と書込み操作の設定
  • API ドキュメント

このガイドでは、 MongoDB PHPライブラリでMongoDBの データベース と コレクション を使用する方法を学習できます。

MongoDB では、データは次のレベルの階層に整理されています。

  • データベース: コレクションを保存するMongoDBデプロイの最上位のデータ構造。

  • コレクション: MongoDBドキュメントのグループ。 関係データベースのテーブルに類似しています。

  • ドキュメント: string 、数値、日付などのリテラル データを保存するユニット。およびその他の埋め込みドキュメントを保存するユニット。 ドキュメントフィールドのタイプと構造の詳細については、 MongoDB Serverマニュアルのドキュメントガイドを参照してください。

データベース名を MongoDB\Client::selectDatabase()メソッドに渡して、データベースにアクセスします。

次の例えではtest_databaseという名前のデータベースにアクセスします。

$db = $client->selectDatabase('test_database');

あるいは、クライアントオブジェクトでMongoDB\Client::__get()メソッドを暗黙的に呼び出すこともできます。 このメソッドでは、クラスプロパティにアクセスするための構文を使用してデータベースを選択できます。 次の例では、この短縮構文を使用してtest_databaseデータベースにアクセスします。

$db = $client->test_database;

Tip

__get()およびPHPフラグ メソッドの詳細については、次のリソースを参照してください。

  • MongoDB\Client::__get() (ライブラリAPIドキュメントの場合

  • メソッド メソッド PHPマニュアルの

次のいずれかの方法を使用してコレクションにアクセスします。

  • MongoDB\Client::selectCollection():データベース名とコレクション名をパラメーターとして渡します

  • MongoDB\Database::selectCollection():コレクション名を パラメーターとして渡します

次の例では、 MongoDB\Database::selectCollection()メソッドを使用して、 test_collectionという名前のコレクションにアクセスします。

$collection = $client->test_database->selectCollection('test_collection');

Tip

指定されたコレクション名がデータベースにまだ存在しない場合、MongoDB は最初にデータを挿入するときに暗黙的にコレクションを作成します。

あるいは、データベースオブジェクトでMongoDB\Database::__get()メソッドを暗黙的に呼び出すこともできます。 このメソッドでは、クラスプロパティにアクセスするための構文を使用してコレクションを選択できます。 次の例では、この短縮構文を使用してtest_collectionコレクションにアクセスします。

$collection = $db->test_collection;

詳しくは、 MongoDB\Database::__get() APIドキュメントを参照してください。

コレクション名をMongoDB\Database::createCollection()メソッドに渡して、 MongoDBデータベースに明示的にコレクションを作成します。

次の例では、 example_collectionという名前のコレクションを作成します。

$result = $client->test_database->createCollection('example_collection');

配列としてcreateCollection()メソッドに渡すことで、最大サイズやドキュメント検証ルールなどのコレクションオプションを指定できます。 オプションのパラメーターの完全なリストについては、 APIドキュメント を参照してください。

MongoDB\Database::listCollections()メソッドを呼び出すと、データベース内のコレクションのリストをクエリできます。 メソッドは、データベース内のすべてのコレクションとそれに関連するメタデータを含むカーソルを返します。

次の例では、 listCollections()メソッドを呼び出し、返されたイテレータを反復処理して、 コレクションへのアクセス と コレクション作成 の例からコレクションを出力します。

foreach ($client->test_database->listCollections() as $collectionInfo) {
print_r($collectionInfo) . PHP_EOL;
}
MongoDB\Model\CollectionInfo Object
(
[name] => example_collection
[type] => collection
...
)
MongoDB\Model\CollectionInfo Object
(
[name] => test_collection
[type] => collection
...
)

データベースからコレクションを削除するには、 MongoDB\Database::dropCollection()メソッドを使用します。

次の例では、 test_collectionコレクションを削除しています。

$client->test_database->dropCollection('test_collection');

警告

コレクションを削除すると、コレクション内のすべてのデータが削除されます

データベースからコレクションを削除すると、そのコレクション内のすべてのドキュメントとすべてのインデックスが永続的に削除されます。

データが不要になった場合にのみコレクションを削除します。

レプリカセットでの読み取りおよび書込み操作の実行方法を制御するには、 読み込み設定( 読み込み設定 (read preference)) 、 読み取り保証( 読み取り保証 (read concern)) 、または書込み保証( 書込み保証 (write concern)) を指定します。

デフォルトでは 、データベースはMongoDB\Clientインスタンスから読み取りおよび書込み設定を継承します。 コレクションは、 selectCollection()メソッドが呼び出されるMongoDB\ClientまたはMongoDB\Databaseインスタンスからこれらの設定を継承します。 これらの設定を変更するには、オプション配列をMongoDB\Client::selectDatabase()MongoDB\Client::selectCollection() 、またはMongoDB\Database::selectCollection()メソッドに渡します。

読み込み設定( 読み込み設定 (read preference)) 、読み取り保証( 読み取り保証 (read concern)) 、書込み保証( 書込み保証 (write concern)) の設定の詳細については、「レプリカセットでCRUD操作を実行する方法を指定する 」ガイドを参照してください。

このガイドで説明したメソッドや型の詳細については、次の API ドキュメントを参照してください。

戻る

Stable API