sql >> データベース >  >> NoSQL >> MongoDB

PHPを使用したMongoDB4.0でのトランザクションの例

    Clientのインスタンスを作成した後、ドライバーをラップするPHPライブラリを使用している場合 例えば$clientと呼ばれます 、次のことができます:

    $session = $client->startSession();
    $session->startTransaction();
    try {
        // Perform actions.
        $session->commitTransaction();
    } catch(Exception $e) {
        $session->abortTransaction();
    }
    

    残念ながら、PHPライブラリリファレンス に関連するドキュメントが見つかりませんでした。 ざっと検索したところ、PHPライブラリの問題> これは、クライアントからセッションを作成し、そのセッションを使用して開始し、トランザクションをコミットまたは中止することが適切な手順であることを示唆しています。

    ただし、注意すべき点がいくつかあります。

    (上記のリンク先の)MongoDBドキュメントを表示すると、レプリカセットの要件が特に目立つように表示されておらず、3番目の見出しの下にあり、すべてのサンプルコードの後に​​あることに気付くでしょう(これは、あなたが私のようなものなら、あなたが最初に探すものになります。



    1. WiredTigerでMongoDbドキュメントに対して部分的な更新を実行すると、完全なドキュメント更新よりも利点がありますか?

    2. Tornado / Motorでの集約の失敗:不明なオブジェクトMotorAggregationCursorが生成されました

    3. PHPスタートアップmongo:モジュールを初期化できません

    4. 日付部分を返すためのMongoDB集計演算子