sql >> Databáze >  >> NoSQL >> MongoDB

Konzistence čtení-vašeho-zápisu v Mongodb

Tato otázka má několik bodů.

  1. 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() nebo update() nebo použijte set_lasterror_options() pro nastavení těchto možností pro připojení, databázi nebo kolekci, kterou používáte.

  2. 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.

  3. 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.

  4. 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.



  1. Název kolekce MongoDB s pomlčkou

  2. Jaké je chování nastavení časového limitu při provádění agregačního kanálu v ovladači MongoDB Java Driver?

  3. Rozdělit data kolem vyhledávacího dotazu během agregace

  4. Vylepšete agregační strukturu MongoDB