PHP を使用して MongoDB でリアルタイム データ同期を実現する方法
sudo pecl install mongodb
まず、コードを記述する必要があります。 MongoDB に接続するための PHP。以下は簡単な例です:
<?php $mongoUrl = "mongodb://localhost:27017"; $mongoClient = new MongoDBClient($mongoUrl); ?>
データ同期の前に、ソース データベースとターゲット データベースのコレクションを取得する必要があります。 。以下は簡単な例です:
<?php $sourceDB = $mongoClient->selectDatabase("source_database"); $targetDB = $mongoClient->selectDatabase("target_database"); $sourceCollection = $sourceDB->selectCollection("source_collection"); $targetCollection = $targetDB->selectCollection("target_collection"); ?>
リアルタイム データ同期を実現するには、ソース データベースの変更をリッスンする必要があります。 。 MongoDB は、データベース上の変更操作をキャプチャし、ストリーミング イベントとして送信する変更ストリーム機能を提供します。以下は、ソース データベース内の変更をリッスンする例です。
<?php $changeStream = $sourceCollection->watch(); foreach ($changeStream as $change) { // 处理变更事件 } ?>
<?php foreach ($changeStream as $change) { $operationType = $change['operationType']; switch ($operationType) { case "insert": // 获取插入的文档 $insertedDocument = $change['fullDocument']; // 将文档插入目标数据库 $targetCollection->insertOne($insertedDocument); break; case "update": // 获取更新后的文档 $updatedDocument = $change['fullDocument']; // 获取更新前的文档 $previousDocument = $change['documentKey']; // 更新目标数据库中的文档 $targetCollection->replaceOne(['_id' => $previousDocument], $updatedDocument); break; case "delete": // 获取删除的文档 $deletedDocument = $change['documentKey']; // 删除目标数据库中的文档 $targetCollection->deleteOne(['_id' => $deletedDocument]); break; } } ?>
以下は、PHP を使用して MongoDB でリアルタイム データ同期を実現する方法を示す完全なサンプル コードです:
<?php $mongoUrl = "mongodb://localhost:27017"; $mongoClient = new MongoDBClient($mongoUrl); $sourceDB = $mongoClient->selectDatabase("source_database"); $targetDB = $mongoClient->selectDatabase("target_database"); $sourceCollection = $sourceDB->selectCollection("source_collection"); $targetCollection = $targetDB->selectCollection("target_collection"); $changeStream = $sourceCollection->watch(); foreach ($changeStream as $change) { $operationType = $change['operationType']; switch ($operationType) { case "insert": $insertedDocument = $change['fullDocument']; $targetCollection->insertOne($insertedDocument); break; case "update": $updatedDocument = $change['fullDocument']; $previousDocument = $change['documentKey']; $targetCollection->replaceOne(['_id' => $previousDocument], $updatedDocument); break; case "delete": $deletedDocument = $change['documentKey']; $targetCollection->deleteOne(['_id' => $deletedDocument]); break; } } ?>
この記事では、PHP プログラミング言語を使用して MongoDB でリアルタイムのデータ同期を実現する方法を紹介します。 2 つの MongoDB データベース間のリアルタイムのデータ同期は、ソース データベース内の変更イベントをリッスンし、さまざまな操作タイプに従って対応するデータ同期操作を実行することによって実現できます。さらに、読者がこのテクノロジーをより深く理解し、適用できるようにするための完全なサンプル コードも提供します。 MongoDB と PHP について詳しくは、公式ドキュメントとチュートリアルを参照してください。
以上がPHP を使用して MongoDB でリアルタイムのデータ同期を実現する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。