Der er altid et vist niveau af låsning, som afhængigt af din MongoDB-version enten sandsynligvis vil være indsamling eller på ældre databaseniveau, eller endda muligvis dokumentniveau med WiredTiger-lagringsmotoren. $out
giver dog efter for skrivninger, så individuelle dokumenter udlæses fra pipelinen og ikke alle på én gang, så hver opdatering er atomisk pr. dokument.
Selv kommandoen mapReduce har denne mulighed , hvor du kan indstille "nonAtomic" som en betingelse, hvor outputsamlingen af en mapReduce vil udvise den samme adfærd.
Den ene ting at være opmærksom på med $out
vil fjerne alle dokumenter (ikke erstatte eksisterende indekser) fra en samling, da det trin udføres, når du bruger "erstat"-tilstanden. Så et forsøg på at læse eller skrive fra en samling rettet med "erstat"-sæt vil sandsynligvis mislykkes (eller give uventede resultater), mens aggregeringsoperationen er i gang.
De øvrige begrænsninger i forbindelse med shardede samlinger og begrænsede samlinger er noteret i dokumentationen.