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

MongoError:このMongoDBデプロイメントは、再試行可能な書き込みをサポートしていません。接続文字列にretryWrites=falseを追加してください

    受け入れられた回答で示唆されているように、スタンドアロンサーバーではなく、トランザクションを実行できるようにレプリカセットとしてローカルサーバーを実行する必要があります。

    ただし、提案されたソリューションに加えて、スタンドアロンのローカルデータベースをサードパーティのツールを使用せずにレプリカセットに簡単に変換できます。 、MongoDBドキュメント の手順に従ってください 、次のように要約します:

    1. スタンドアロンのmongodインスタンスを停止し、replSetで再起動します 議論。
    mongod --port 27017 --dbpath /srv/mongodb/db0 --replSet rs0 --bind_ip localhost
    
    1. mongoを使用してインスタンスに接続します シェルを作成し、新しいレプリカセットを開始します。
    rs.initiate()
    

    これで、スタンドアロンのmongodbサーバーの代わりにレプリカセットが必要になります。このサーバーでは、ローカル環境でトランザクションを実行して、複数のドキュメントを一度に更新できます。

    忘れないでください replSetを含める サーバーを起動するたびに引数を指定します。それ以外の場合は、スタンドアロンとして起動されます。手順1と同じコマンドを使用して、もう一度実行します。

    または、MongoDBドキュメント。



    1. SpringDatamongo-Distinctコレクションの問題

    2. mongocsharpdriver 2.7.0を使用して(認証を使用して)MongoDbに接続できません

    3. mongoose-サブドキュメントを参照するObjectId

    4. 配列内の条件に基づいて、配列から個別の値を取得します