MongoDB non supporta le transazioni come nel DB relazionale. ACID postula nelle transazioni è una funzionalità diversa completa fornita dai motori di memorizzazione in MySQL
Alcune delle caratteristiche del motore InnoDB in MySQL:
- Crash Recovery
- doppio buffer di scrittura
- Impostazioni di commit automatico
- livello di isolamento
Questo è ciò che comunità MongoDB ha da dire:
MongoDB non ha il supporto per il bloccaggio tradizionale o transazioni complesse con rollback.
MongoDB mira a essere leggero, veloce e prevedibile nelle sue prestazioni. Mantenendo il supporto delle transazioni estremamente semplice, MongoDB è in grado di fornire prestazioni più elevate, in particolare per i sistemi partizionati o replicati con numerosi processi del server di database.
Lo scopo di una transazione è assicurarsi che l'intero database rimanga coerente mentre si verificano più operazioni.
Ma al contrario della maggior parte dei database relazionali, MongoDB non è progettato per essere eseguito su un singolo host. È progettato per essere configurato come un cluster di più frammenti in cui ogni frammento è una serie di repliche di più server (opzionalmente in diverse posizioni geografiche).
Ma se siete ancora alla ricerca di modo per rendere le operazioni possibili:
- Provare a utilizzare a livello di documento atomicità fornito da Mongo
- commit a due fasi in Mongo fornisce semplice meccanismo di transazione per operazioni di base
- mongomvcc è costruito sulla parte superiore di mongo e supporta anche la transazione come si dice
- ibrida di MySQL e Mongo
Oltre ad essere troppo ampio e soggettivo, la risposta predefinita: perché vogliamo e si adatta il nostro scenario? Pensaci anche: in un'app per le transazioni senza soldi/risorse (come il 90% delle app disponibili) quante righe si affidano l'una sull'altra? Invece è possibile implementare qualcosa noto come consistenza finale per questo, per cui lo rende on-demand in pezzi. Ovviamente, è molto più semplice e veloce ridimensionare anche – Sammaye
@ Sammaye. Riguarda il tuo caso d'uso. NoSQL è più utilizzato per la memorizzazione di dati grezzi che cresce enorme e ricava un valore aziendale da esso. Venendo al supporto delle transazioni non lo supporta. questo potrebbe non essere sicuro se è disponibile sul mercato per l'uso di http: //www.tokutek.com/2013/04/mongodb-multi-statement-transactions-yes-we-can/ – Ninad