Der er et par punkter om dette spørgsmål.
-
Du er ikke garanteret at have læs-efter-skriv-konsistens, medmindre du bruger enten
"safe=true"
,"w=1"
(eller større) eller"j=true"
med din skrivning. Du kan enten inkludere disse som en del af insert() ellerupdate()
kommandoer, eller brugset_lasterror_options()
for at indstille disse indstillinger for den forbindelse, database eller samling, du bruger. -
Hvis du tillader læsninger fra sekundære noder (f.eks. en anden ReadPreference end PRIMÆR), får du ikke læs-efter-skriv-semantik, men kun eventuel konsistens.
-
Hvis du bruger en ReadPreference af PRIMÆR, og du indstiller de passende lasterror-indstillinger, så er du garanteret at få læs-efter-skriv-semantik på alle operationer, der bruger den samme socket, det vil sige den samme tråd.
-
Hvis du bruger flere tråde, og du IKKE læser fra sekundære noder, så er du garanteret læse-efter-skriv-konsistens, så længe du udsender læsningen i den anden tråd, efter at skrivningen er fuldført i den første tråd. Du kan bruge standard trådsynkroniseringsprimitiver for at sikre dette.