つまり、レプリカセット内のセカンダリノードから読み取ろうとしているので、デフォルトではプライマリノードからしか読み取ることができません。
rs.slaveOk()
を実行することで、セカンダリノードが読み取りを受け入れるようにすることができます。 そのセカンダリノードに接続されているmongoシェル内。ノードがプライマリノードとまだ同期されていない場合、古いデータを読み取る可能性があるため、セカンダリからの読み取りを許可することはお勧めしません。
更新: Janusz Slotaのコメントが指摘しているように、rs.slaveOk()
使用されなくなりました。 rs.secondaryOk()
を使用します ただし、これはまだ推奨されていません。 rs.secondaryOk()
のドキュメントは次のとおりです。 。