セカンダリからの読み取りを許可していることをmongoシェルに通知するには、「セカンダリOK」モードを設定する必要があります。これは、偶然に結果整合性のある読み取りを実行することからユーザーとアプリケーションを保護するためです。これは、シェルで次のように実行できます:
rs.secondaryOk()
その後、セカンダリから通常どおりクエリを実行できます。
「結果整合性」に関する注意:通常の状況では、レプリカセットのセカンダリは、1秒以内にプライマリとすべて同じデータを持ちます。非常に高い負荷がかかると、プライマリに書き込んだデータがセカンダリに複製されるまでに時間がかかる場合があります。これは「レプリカラグ」と呼ばれ、遅れているセカンダリからの読み取りは「結果整合性」読み取りと呼ばれます。これは、新しく書き込まれたデータはある時点で表示されますが(ネットワーク障害などを除く)、表示されない場合があるためです。すぐに利用できます。
編集: 設定する必要があるのはsecondaryOk
だけです セカンダリからクエリを実行する場合、セッションごとに1回のみ。