Da quello che ho letto finora ... ecco la mia opinione su di esso.
Lo standard SQL consente di ridurre le prestazioni per la ricchezza delle funzionalità ... cioè consente di eseguire join e transazioni tra set di dati (tabelle/raccolte, se lo si desidera) tra le altre cose.
Ciò consente a uno sviluppatore di applicazioni di trasferire parte della complessità dell'applicazione nel livello del database. Questo ha il vantaggio di non doversi preoccupare dell'integrità dei dati e del resto delle proprietà ACID da parte dell'applicazione, a seconda della tecnologia collaudata. La mancanza di scalabilità estrema funziona praticamente per tutti i progetti, a condizione che si riesca a mantenere l'applicazione funzionante entro i limiti di tempo previsti, il che a volte può comportare l'acquisto di sistemi di database relazionali ad alte prestazioni/costosi.
D'altra parte, Mongo DB, esclude deliberatamente gran parte della complessità intrinseca associata ai database relazionali, consentendo una migliore prestazione scalabile.
Questo approccio costringe lo sviluppatore dell'applicazione a ri-progettare l'applicazione per aggirare la mancanza di caratteristiche relazionali ... che in sé e per sé è una buona cosa, ma lo sforzo richiesto è in genere vale la pena se si dispone della scalabilità requisiti. Si noti che con MongoDB, in base ai requisiti dei dati con le proprietà ACID, l'applicazione dovrà essere potenziata e gestita secondo necessità.
È possibile trovare questo divertente e interessante da ascoltare http://www.xtranormal.com/watch/6995033/mongo-db-is-web-scale – dkroy