sql >> Database >  >> NoSQL >> MongoDB

mongodb, repliceert en fout:{$err:niet master en slaveOk=false, code:13435}

U moet de "secundaire oke" -modus instellen om de mongo-shell te laten weten dat u lezen van een secundaire toestaat. Dit is om u en uw applicaties te beschermen tegen het per ongeluk uitvoeren van consistente leesbewerkingen. U kunt dit in de shell doen met:

rs.secondaryOk()

Daarna kunt u normaal opvragen vanuit secondaries.

Een opmerking over "uiteindelijke consistentie":onder normale omstandigheden hebben secundaire replicasets dezelfde gegevens als primaire binnen een seconde of minder. Bij zeer hoge belasting kan het even duren voordat gegevens die u naar de primaire hebt geschreven, naar de secundairen zijn gerepliceerd. Dit staat bekend als "replica lag", en lezen van een achterblijvende secundaire staat bekend als een "uiteindelijk consistent" lezen, omdat, hoewel de nieuw geschreven gegevens op een bepaald moment verschijnen (behalve netwerkstoringen, enz.), onmiddellijk beschikbaar.

Bewerken: U hoeft alleen secondaryOk . in te stellen bij het opvragen van secondaries, en slechts één keer per sessie.



  1. Wijzig de volgorde waarin eigenschappen worden weergegeven in MongoDB

  2. Een SQL LIKE-instructie gebruiken in MongoDB

  3. Hoe verwijder je veel mongodb-collecties tegelijk?

  4. Hoe kan ik Webmachine en eredis laten samenwerken?