MongoDB는 다중 document ACID 트랜잭션을 지원합니다(replica set은 v4.0부터, sharded cluster는 v4.2부터) — 여러 document/collection에 걸친 연산을 묶어 모두 성공하거나 모두 실패하게 합니다. 그러나 MongoDB의 document 모델은 원자적 단일 document 연산을 통해 종종 트랜잭션을 불필요하게 만듭니다.
단일 document 연산은 이미 원자적
핵심: MongoDB에서 단일 DOCUMENT에 대한 연산은 항상 원자적임.
→ 연관 데이터가 종종 하나의 document에 EMBEDDED되므로, SQL에서 트랜잭션이 필요한
많은 연산이 MongoDB에서는 단일 원자적 document 갱신임.
→ 좋은 schema 설계(embedding)는 종종 다중 doc 트랜잭션의 필요를 없앰.
db..(
{ : id },
{ : { : - }, : { : { : - } } }
);
