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

mongodbサーバーがダウンしている場合、mongooseクエリの実行中にエラーをキャッチする方法

    マングースを使用している場合、データベースがダウンしているとき、およびデータベースが再接続して再びアップしているときに、イベント(EventEmitterパターン)を発行します。

    ここ で見つかったマングースコードから ライブラリデータベース接続- connection.js >

    放出されるイベントは次のとおりです。*@param{Mongoose}ベースのマングースインスタンス*@inheritsNodeJS EventEmitter

    http://nodejs.org/api/events.html#events_class_events_eventemitter *@eventconnectingconnection.{open,openSet}()のときに発行されます この接続で実行されます。

    • @eventconnected :この接続がデータベースに正常に接続したときに発行されます。 複数放出される可能性があります reconnectedでの回数 シナリオ。

    • @event openconnecting後に発行されます およびonOpen このすべての接続モデルで実行されます。

    • @eventdisconnectingconnection.close()の場合に発行されます 実行されました。

    • @eventdisconnecting :データベースから切断された後に発行されます。

    • @event closedisconnecting後に発行されます およびonClose このすべての接続モデルで実行されます。

    • @eventreconnectedconnecting後に発行されます その後、disconnecting 、続いて別の接続が成功しました。

    • @eventerror :この接続でエラーが発生したときに発行されます。

    • @event fullsetup :レプリカセットのシナリオで、接続文字列で指定されたプライマリと少なくとも1つのセカンダリが接続されている場合に発行されます。

    • @event all :接続文字列で指定されたすべてのノードが接続されている場合に、レプリカセットシナリオで発行されます。

    データベースがダウンすると、2つのイベントが発生します:1。切断2。エラー(ドライバーが発生したエラー)

    データベースが再び稼働すると、再接続イベントを受け取ります。

    したがって、エラーをキャッチする必要はなく、これらのイベントをリッスンする必要があります。

    接続障害と再接続に関するさらに役立つ情報は、こちら

    この記事では、設定に従ってautoReconnectとbufferMaxEntriesを使用および構成する方法について説明します。




    1. オブジェクトIDの配列を使用してマングーススキーマを作成するにはどうすればよいですか?

    2. MongoDB:配列一致パラメーターでサブドキュメントを検索

    3. 複数のコレクションでトランザクションを実行中にMongoDBAtlasエラーが発生しました(コード8000)

    4. オブジェクトの配列内のMongoDB集計フィールド