Er zijn een paar punten over deze vraag.
-
U bent niet gegarandeerd van lees-na-schrijfconsistentie, tenzij u
"safe=true"
gebruikt ,"w=1"
(of hoger) of"j=true"
met je schrijven. U kunt deze ofwel opnemen als onderdeel van de insert() ofupdate()
commando's, of gebruik andersset_lasterror_options()
om deze opties in te stellen voor de verbinding, database of verzameling die u gebruikt. -
Als u lezen van secundaire knooppunten toestaat (bijvoorbeeld een andere ReadPreference dan PRIMARY), krijgt u geen lees-na-schrijf-semantiek, maar alleen uiteindelijke consistentie.
-
Als u een ReadPreference van PRIMARY gebruikt en u de juiste lasterror-opties instelt, krijgt u gegarandeerd lees-na-schrijf-semantiek voor alle bewerkingen die dezelfde socket gebruiken, dat wil zeggen dezelfde thread.
-
Als u meerdere threads gebruikt en NIET leest vanaf secundaire knooppunten, krijgt u gegarandeerd lees-na-schrijfconsistentie zolang u de leesbewerking in de tweede thread uitvoert nadat het schrijven in de eerste thread is voltooid. U kunt standaard threadsynchronisatieprimitieven gebruiken om dit te verzekeren.