Le principali differenze sono il modello di dati e le capacità di interrogazione.
Archivi di valori-chiave
Il primo tipo è molto semplice e probabilmente non necessita di ulteriori spiegazioni.
Modello di dati: più che archivi di valori-chiave
Sebbene ci sia qualche dibattito sul nome corretto per database come Cassandra, mi piacerebbe chiamarli archivi di famiglie di colonne . Sebbene le coppie chiave-valore siano una parte essenziale di Cassandra, non si limita a questo. Ti consente di nidificare coppie chiave-valore, in modo che una chiave possa fare riferimento a più coppie sotto-chiave-valore.
Tuttavia, non puoi nidificare coppie chiave-valore a tempo indeterminato. Sei limitato a tre livelli (famiglie di colonne) o quattro livelli di nidificazione (famiglie di supercolonne). Nel caso in cui il termine famiglia di colonne non suoni un campanello, vedere il WTF è un articolo di SuperColumn , è una buona spiegazione del modello di dati di Cassandra.
I database di documenti , come CouchDB e MongoDB, archiviano interi documenti sotto forma di oggetti JSON . Puoi pensare a questi oggetti come coppie chiave-valore nidificate. A differenza di Cassandra, puoi nidificare le coppie chiave-valore quanto vuoi. JSON supporta anche array e comprende diversi tipi di dati, come stringhe, numeri e valori booleani.
Interrogare
Credo che gli archivi della famiglia di colonne possano essere interrogati solo per chiave o scrivendo funzioni di riduzione della mappa. Non è possibile interrogare i valori come si farebbe in un database SQL. Se la tua applicazione necessita di query più complesse, la tua applicazione dovrà creare e mantenere gli indici per poter accedere ai dati desiderati.
I database dei documenti supportano anche le query per chiave e le funzioni di riduzione della mappa, ma consentono anche di eseguire query di base in base al valore, come "Dammi tutti gli utenti con più di 10 post". I database dei documenti sono più flessibili in questo modo.