MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Diferença entre bancos de dados baseados em documentos e baseados em chave/valor?


As principais diferenças são o modelo de dados e os recursos de consulta.

Armazenamentos de valores-chave


O primeiro tipo é muito simples e provavelmente não precisa de mais explicações.

Modelo de dados:mais do que armazenamentos de valores-chave


Embora haja algum debate sobre o nome correto para bancos de dados como Cassandra, gostaria de chamá-los de column-family stores . Embora os pares de valores-chave sejam uma parte essencial do Cassandra, não se limitam apenas a isso. Ele permite que você aninhe pares de valores-chave, para que uma chave possa se referir a vários pares de valores-chave.

No entanto, você não pode aninhar pares de valores-chave indefinidamente. Você está limitado a três níveis (famílias de colunas) ou quatro níveis de aninhamento (famílias de supercolunas). Caso o termo família de colunas não soe bem, veja o artigo WTF is a SuperColumn, é uma boa explicação do modelo de dados do Cassandra.

Bancos de dados de documentos , como CouchDB e MongoDB armazenam documentos inteiros na forma de objetos JSON. Você pode pensar nesses objetos como pares de valores-chave aninhados. Ao contrário do Cassandra, você pode aninhar pares de valores-chave o quanto quiser. JSON também suporta arrays e entende diferentes tipos de dados, como strings, números e valores booleanos.

Consultando


Acredito que os armazenamentos de família de colunas só podem ser consultados por chave ou escrevendo funções de redução de mapa. Você não pode consultar os valores como faria em um banco de dados SQL. Se sua aplicação necessitar de consultas mais complexas, sua aplicação terá que criar e manter índices para poder acessar os dados desejados.

Os bancos de dados de documentos também suportam consultas por funções de chave e redução de mapa, mas também permitem que você faça consultas básicas por valor, como "Dê-me todos os usuários com mais de 10 postagens". Os bancos de dados de documentos são mais flexíveis dessa maneira.