Pojawiają się, gdy równoległe transakcje próbują zmienić te same dokumenty/klucze, więc jedna z nich musi się wycofać, żeby zachować izolację. Aplikacja powinna to traktować jako błąd do ponowienia: ponów całą transakcję (z backoffem), trzymaj transakcje krótkie i rób efekty uboczne idempotentne, żeby retry było bezpieczne.
Rozwinięcie krótkiej odpowiedzi — co zwykle ma znaczenie w praktyce:
Krótki przykład (query + projection):
// Example: query + projection
const user = await db.collection('users').findOne(
{ email: '[email protected]' },
{ projection: { _id: 0, email: 1, name: 1 } },
)