MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

mongodb, replica e erro:{ $err:not master and slaveOk=false, code:13435}


Você precisa definir o modo "secundário ok" para que o shell do mongo saiba que você está permitindo leituras de um secundário. Isso é para proteger você e seus aplicativos de realizar leituras eventualmente consistentes por acidente. Você pode fazer isso no shell com:
rs.secondaryOk()

Depois disso, você pode consultar normalmente a partir de secundários.

Uma observação sobre "consistência eventual":em circunstâncias normais, os secundários do conjunto de réplicas têm todos os mesmos dados que os primários em um segundo ou menos. Sob carga muito alta, os dados que você gravou no primário podem demorar um pouco para serem replicados nos secundários. Isso é conhecido como "atraso de réplica", e a leitura de um secundário atrasado é conhecida como uma leitura "eventualmente consistente", porque, embora os dados recém-gravados apareçam em algum ponto (exceto falhas de rede, etc.), pode não ser disponível imediatamente.

Editar: Você só precisa definir secondaryOk ao consultar de secundários e apenas uma vez por sessão.