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