Vždy existuje určitá úroveň zamykání, která v závislosti na vaší verzi MongoDB pravděpodobně bude sbírka nebo starší úroveň databáze, nebo dokonce možná úroveň dokumentu s úložištěm WiredTiger. $out
se však zapisuje, takže jednotlivé dokumenty jsou výstupem z kanálu a ne všechny najednou, takže každá aktualizace je atomická pro každý dokument.
Dokonce i příkaz mapReduce má tuto možnost , kde můžete nastavit "nonAtomic" jako podmínku, kdy bude výstupní kolekce mapReduce vykazovat stejné chování.
U $out
je třeba si uvědomit jednu věc odstraní všechny dokumenty (nenahradí žádné existující indexy) z kolekce, jak se tato fáze spustí při použití režimu "nahradit". Takže pokus o čtení nebo zápis z kolekce nasměrované sadou "nahradit" velmi pravděpodobně selže (nebo přinese neočekávané výsledky), když probíhá operace agregace.
Další omezení týkající se sharded kolekcí a omezených kolekcí jsou uvedena v dokumentaci.