インターネットの発展に伴い、データ量は劇的に増加し、従来のリレーショナル データベースではデータ処理のニーズを完全に満たすことができなくなりました。新しいデータベース テクノロジとして、非リレーショナル データベース (NoSQL) は、大量のデータや同時アクセスの多い状況をより適切に処理できます。その中でも、MongoDB は、Nosql の代表的なものの 1 つとして、動的データ スキーマ、高スケーラビリティ、高可用性、高パフォーマンスをサポートしており、特にオブジェクト指向開発モデルに適しています。この記事では、PHP と MongoDB を使用して非リレーショナル データベース操作を実装する方法を紹介します。
1. MongoDB と PHP 拡張機能のインストール
MongoDB を使用する前に、まず MongoDB サービスと対応する PHP 拡張機能をインストールする必要があります。 MongoDB のインストールについては、公式ドキュメントを参照してください。ここでは詳しく説明しません。 PHP 拡張機能のインストールは、次の手順で実行できます。
PHP 拡張機能をコンパイルします: コマンド ラインでソース コード フォルダーを入力し、次のコマンドを実行します:
phpize ./configure make make install
php.ini ファイルを構成します: Find php .ini ファイルを開き、次の内容を追加します:
extension=mongodb.so
PHP サービスを再起動します: PHP サービスを再起動して、構成を有効にします。コマンド方法は、次のようにシステムによって異なります。
systemctl restart php-fpm
2. MongoDB データベースへの接続
MongoDB データベースへの接続には、MongoDB が提供する PHP ドライバーを使用する必要があります。具体的な操作は次のとおりです:
接続の作成: MongoClient クラスを使用して接続を作成します。そのコンストラクターのパラメーターは、MongoDB サービスの IP アドレスとポート番号です。
$client = new MongoClient("mongodb://127.0.0.1:27017");
データベースの選択: selectDB メソッドを使用して、操作するデータベースを選択します。
$db = $client->selectDB('test');
3. データの挿入
MongoDB は JSON 形式でのデータ ストレージをサポートしているため、データを挿入するとデータを JSON 形式に変換できます。具体的な操作は次のとおりです。
ドキュメントの作成: MongoDB のドキュメント クラス MongoDBBSONDocument を使用してドキュメント オブジェクトを作成します。
$doc = new MongoDBBSONDocument([ 'name' => '张三', 'age' => 20, 'sex' => '男', 'address' => '北京市', ]);
データの挿入: データを挿入するには、MongoDB のコレクション クラス MongoCollection の insertOne メソッドを使用します。
$collection = $db->selectCollection('users'); $collection->insertOne($doc);
4. クエリ データ
MongoDB は、さまざまな強力なクエリおよび集計操作をサポートしています。具体的な操作は次のとおりです:
ドキュメントのクエリ: find メソッドを使用してドキュメントをクエリします。最初のパラメータはクエリ条件で、2 番目のパラメータはオプションです (指定されたフィールドのクエリ、並べ替えなど)。
$collection = $db->selectCollection('users'); $cursor = $collection->find([ 'age' => ['$gt' => 18] ], [ 'projection' => ['name' => 1, 'age' => 1], 'sort' => ['age' => 1], ]); foreach ($cursor as $doc) { echo $doc['name'] . ' ' . $doc['age'] . " "; }
集計操作: 集計メソッドなどの集計メソッドを使用して、マルチレベルの集計計算を実行し、複雑なクエリ要件を実現します。
$collection = $db->selectCollection('users'); $cursor = $collection->aggregate([ ['$match' => ['age' => ['$gt' => 18]]], ['$group' => [ '_id' => '$sex', 'count' => ['$sum' => 1] ]], ['$sort' => ['count' => -1]], ]); foreach ($cursor as $doc) { echo $doc['_id'] . ' ' . $doc['count'] . " "; }
5. データの更新と削除
MongoDB は、単一およびバッチの更新および削除操作をサポートしています。具体的な操作は次のとおりです:
単一更新: updateOne メソッドを使用して単一のデータを更新します。最初のパラメーターはクエリ条件、2 番目のパラメーターは更新されるデータです。
$collection = $db->selectCollection('users'); $collection->updateOne( ['name' => '张三'], ['$set' => ['age' => 21]] );
複数の更新: updateMany メソッドを使用して、データをバッチで更新します。
$collection = $db->selectCollection('users'); $collection->updateMany( ['sex' => '男'], ['$inc' => ['age' => 1]] );
単一の削除: deleteOne メソッドを使用して単一のデータを削除します。最初のパラメーターはクエリ条件です。
$collection = $db->selectCollection('users'); $collection->deleteOne(['name' => '张三']);
複数の削除: データをバッチで削除するには、deleteMany メソッドを使用します。
$collection = $db->selectCollection('users'); $collection->deleteMany(['sex' => '男']);
6. 概要
上記は、PHP と MongoDB を使用して非リレーショナル データベース操作を実装するための基本的な概要です。さまざまなビジネス シナリオの具体的な実装方法は、次のとおりです。読者 実際の状況に応じて調整および拡張できます。 MongoDB は、複雑なビジネス ニーズをより適切に満たすための豊富な操作 API と集計メソッドを提供します。
以上がPHP と MongoDB を使用して非リレーショナル データベース操作を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。