Tato otázka má několik bodů.
-
Pokud nepoužijete buď
"safe=true"
, není zaručena konzistence čtení po zápisu ,"w=1"
(nebo vyšší) nebo"j=true"
s tvým psaním. Můžete je zahrnout buď jako součást insert() neboupdate()
nebo použijteset_lasterror_options()
pro nastavení těchto možností pro připojení, databázi nebo kolekci, kterou používáte. -
Pokud povolíte čtení ze sekundárních uzlů (např. ReadPreference jiné než PRIMARY), pak nezískáte sémantiku čtení po zápisu, ale pouze případnou konzistenci.
-
Pokud používáte ReadPreference z PRIMARY a nastavujete příslušné možnosti lasterror, pak je zaručeno, že získáte sémantiku čtení po zápisu u všech operací, které používají stejný soket, tedy stejné vlákno.
-
Pokud používáte více vláken a NEČTETE ze sekundárních uzlů, pak je zaručeno, že získáte konzistenci čtení po zápisu, pokud provedete čtení ve druhém vlákně po dokončení zápisu v prvním vláknu. K zajištění toho můžete použít standardní primitiva synchronizace vláken.