MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Differenza tra database basati su documenti e database basati su chiave/valore?

Le differenze principali sono il modello di dati e le capacità di interrogazione.

Negozi chiave-valore

Il primo tipo è molto semplice e probabilmente non ha bisogno di ulteriori spiegazioni.

Modello di dati:più dei negozi di valori-chiave

Sebbene ci sia qualche dibattito sul nome corretto per database come Cassandra, mi piacerebbe chiamarli negozi per famiglie di colonne . Sebbene le coppie chiave-valore siano una parte essenziale di Cassandra, non si limita solo a questo. Ti consente di annidare coppie chiave-valore, in modo che una chiave possa fare riferimento a più coppie sottochiave-valore.

Tuttavia, non puoi annidare coppie chiave-valore indefinitamente. Sei limitato a tre livelli (famiglie di colonne) o quattro livelli di nidificazione (famiglie di super colonne). Nel caso in cui il termine famiglia di colonne non suoni un campanello, vedi il WTF è un articolo di SuperColumn, è una buona spiegazione del modello di dati di Cassandra.

Banche dati di documenti , come CouchDB e MongoDB, archiviano interi documenti sotto forma di oggetti JSON. Puoi pensare a questi oggetti come a coppie chiave-valore annidate. A differenza di Cassandra, puoi annidare coppie chiave-valore quanto vuoi. JSON supporta anche gli array e comprende diversi tipi di dati, come stringhe, numeri e valori booleani.

Interrogazione

Credo che i negozi di famiglie di colonne possano essere interrogati solo tramite chiave o scrivendo funzioni di riduzione della mappa. Non puoi interrogare i valori come faresti in un database SQL. Se la tua applicazione necessita di query più complesse, la tua applicazione dovrà creare e mantenere indici per accedere ai dati desiderati.

I database dei documenti supportano anche le query per chiave e funzioni di riduzione della mappa, ma consentono anche di eseguire query di base per valore, come "Dammi tutti gli utenti con più di 10 post". I database dei documenti sono più flessibili in questo modo.