無料のオンラインmongodb大学のmongodb試験の質問で出てきたので、この回答を提供したいと思いました。それは徹底的であり、ドキュメントを提供します。
私はそれを理解しました、そして主にレッスンでの説明の欠如によって引き起こされたいくつかの混乱をきれいにします。私は批判的ではありませんが、この質問に正しく答えるにはさらなる説明が必要です。
まず、アプリケーションを介してmongodbに接続する場合は、ドライバーを使用します。このドライバーには、mongodbサーバーで何かを行うために通過しなければならないバリアがあります。このバリアの概念を理解すると、この質問を理解できるようになります。
最終的に物事のリストが作成されるすべての接続は、障壁を通過し、最終的に書き込みまたは読み取り操作を実行するために発生する必要があります。
視覚的には次のように考えることができます:
*****注**:このパイプラインのどこでも、ロジックに基づいて障害が発生し、書き込み/読み取り操作が成功しない場合があります。
バリア1〜3は、接続のネットワークバリアと考えることができます。ネットワークがダウンしているか問題がある場合、これらはタイムアウトとそれらのタイムアウトの例外処理を通じて気付く問題です。そもそもサーバーに接続できないと、書き込みを懸念して書き込み操作を実行できないことを理解する必要があります。レッスンはこれらのポイントを説明することができたでしょう。
書き込みまたは読み取り操作に対する最初の一連の障壁は、サーバーへの接続を確立することです...これは上記のバリー1〜3で示されています。
次に、クラスターまたはクラスターのレプリカセットを介してサーバーに接続した後、書き込みの懸念事項を定義できます。
接続が確立された後は、ネットワーク接続以外の理由で書き込みが行われない場合があります。これらは、データの衝突、DDOSまたはハッキングによる書き込みの極端な割り当て、または一般にデータをサーバーに書き込むための十分なサーバースペースがない可能性があります。重要なのは、他の何かが書き込みの懸念に対する反応を引き起こす可能性があるため、書き込みの懸念エラーを処理するためのオプションを介した制御です。
質問と正解を理解することができたので、これがお役に立てば幸いです。ほとんどの場合、これはそれほど難しいことではなかったので、他の人がこのフィードバックループを学び、理解するのに役立つことを願っています。
これが私がこの答え/結論に到達するのを助けるために読んだいくつかの記事です。誰かが私の説明についてより良いまたは改善を持っているならば、フィードバックを提供してください。
https://scalegrid.io/blog/understanding-mongodb-client-タイムアウトオプション/
https://scalegrid.io/blog/mongodb- write-concern-3-must-know-caveats /
https://docs.mongodb.com/manual/reference/write-concern/
https://www.mongodb.com/blog / post / server-selection-next-generation-mongodb-drivers