Zawsze istnieje pewien poziom blokowania, który w zależności od wersji MongoDB może być zbiorem lub starszym poziomem bazy danych, a nawet poziomem dokumentu z silnikiem przechowywania WiredTiger. $out
jednak daje zysk przy zapisach, więc poszczególne dokumenty są wyprowadzane z potoku, a nie wszystkie za jednym razem, więc każda aktualizacja jest niepodzielna na dokument.
Nawet polecenie mapReduce ma tę opcję , gdzie można ustawić „nonAtomic” jako warunek, w którym kolekcja wyjściowa mapReduce będzie wykazywać takie samo zachowanie.
Jedna rzecz, o której należy pamiętać przy $out
usunie wszystkie dokumenty (nie zastąpi żadnych istniejących indeksów) z kolekcji, ponieważ ten etap jest wykonywany w trybie „zamień”. Tak więc próba odczytu lub zapisu z kolekcji skierowanej za pomocą zestawu „zamień” najprawdopodobniej nie powiedzie się (lub da nieoczekiwane wyniki), gdy operacja agregacji jest w toku.
Inne ograniczenia związane z kolekcjami podzielonymi na fragmenty i kolekcjami ograniczonymi są opisane w dokumentacji.