# MongoDB vs. Cassandra: Comparação de bancos de dados NoSQL

Apesar de MongoDB e Cassandra serem semelhantes em muitos aspectos, cada um é adequado a um tipo de uso. O MongoDB tem a escalabilidade ideal, já o Cassandra ganha em termos de disponibilidade.

## MongoDB e Cassandra: Os melhores bancos de dados NoSQL

O [MongoDB](https://www.ionos.com/pt-br/digitalguide/sites-de-internet/desenvolvimento-web/o-que-e-mongodb/) e o Cassandra são considerados os dois mais importantes [bancos de dados NoSQL](https://www.ionos.com/pt-br/digitalguide/hospedagem/tecnologia-de-hospedagem/nosql/ "NoSQL") dos tempos atuais. Adotados por inúmeras empresas conhecidas e bem-sucedidas, ambos também prestam excelentes serviços a usuários com demandas menores e mais simples.

Nota Como volumes de dados estão cada vez maiores e mais diversificados, sistemas de gerenciamento de bancos de dados distribuídos, assim como de bancos de dados NoSQL, tornam-se cada vez mais importantes. É que soluções não-relacionais como essas têm como principais características **alta escalabilidade e alta confiabilidade**. Sempre que o volume de dados aumenta, o respectivo sistema cresce, sem que a clareza estrutural seja perdida.

### MongoDB baseia-se em coleções e documentos

Antes de apresentarmos nossa comparação MongoDB vs. Cassandra, vale a pena destacarmos alguns aspectos individuais de cada solução de bancos de dados NoSQL. O nome MongoDB tem origem na palavra inglesa “humongous”, que quer dizer gigantesco. Desenvolvido em 2009 pela empresa 10gen (hoje chamada MongoDB, Inc.), esse banco de dados é distribuído sob a licença Server Side Public Licence e disponibilizado em duas versões: uma comunitária e gratuita, e uma comercial e proprietária. Desenvolvido na linguagem C++, o MongoDB **armazena dados em coleções e documentos** e é, sem sombra de dúvidas, um dos bancos de dados mais queridos do mundo.

Dica Conheça o [Managed MongoDB](https://cloud.ionos.com/managed/dbaas/managed-mongodb "Managed MongoDB — IONOS") da IONOS: o banco de dados NoSQL adaptado às suas necessidades. Ele oferece escalabilidade máxima, análises de dados abrangentes e o hardware ideal para a sua carga de trabalho. Explore os planos disponíveis e escolha o seu.

### Cassandra é orientado a colunas

Mesmo que o MongoDB e o Cassandra diferenciem-se em alguns aspectos, suas primeiras versões tiveram mais similaridades. Lançado em 2008, o Cassandra foi exclusivamente desenvolvido para ser usado pelo Facebook. No ano seguinte, contudo, a Apache Software Foundation assumiu esse sistema de gerenciamento de banco de dados NoSQL, tornando-o multiplataforma. Ele é programado em Java e **orientado a colunas**.

Além de seus inventores, Avinash Lakshman e Prashant Malik, empresas como a DataStax, a IBM e o Twitter também estiveram envolvidas no crescimento do Cassandra, que certamente é o banco de dados orientado a colunas mais popular. Atualmente, seu sistema é distribuído sob a licença Apache e está disponível tanto numa versão gratuita quanto em diferentes versões pagas.

## MongoDB vs. Cassandra: Adequação e escalabilidade

Fato da nossa comparação MongoDB vs. Cassandra: ambas as soluções são adequadas ao processamento de **grandes coleções de dados** que necessitam de abordagens NoSQL. Isso quer dizer que as duas conseguem lidar com volumes de dados não estruturados, por operarem independentemente de tabelas e por dependerem de nós diferentes, o que aumenta tanto a capacidade quanto a escalabilidade. Em comparação com concorrentes SQL, ambos os sistemas são especialmente adequados a empresas que trabalham com grandes volumes de dados desde o começo, assim como a empresas que não conseguem prever suas necessidades com exatidão no início, mas que certamente aumentarão as demandas com o tempo.

O MongoDB é melhor para quem precisa lidar com **volumes de dados majoritariamente não estruturados**. Na verdade, mesmo que ambas as soluções sejam apropriadas, o MongoDB é mais flexível e, portanto, mais escalável. Apesar do Cassandra também ser flexível, seu ponto forte é sua estrutura, que se assemelha à de bancos de dados SQL — as similaridades facilitam uma eventual migração. O Cassandra usa a linguagem de consulta **CQL**, parecida com a de bancos de dados tradicionais. O MongoDB, por sua vez, perde nesse quesito, já que sua linguagem de consulta própria precisa ser aprendida.

## MongoDB vs. Cassandra: Funcionamento

Embora o MongoDB e o Cassandra tenham objetivos semelhantes, suas abordagens são fundamentalmente diferentes. O MongoDB armazena dados em **documentos criados em coleções**, sendo cada documento composto de pares de valores-chave. As chaves, por sua vez, são cadeias de caracteres, já os valores podem ser booleanos, dados, outros documentos, números e também cadeias de caracteres. O Cassandra, por outro lado, é **orientado a colunas** (*sorted string tables*) e faz partições baseadas em linhas. Tabelas SSTable como essas não podem ser alteradas posteriormente, por conterem conjuntos ordenados de pares de valores-chave. Embora o Cassandra seja considerado um banco de dados NoSQL, sua abordagem poderia ser chamada de “Not(only)SQL”, apesar da linguagem de consulta do Cassandra ser bem mais flexível.

## MongoDB vs. Cassandra: Modelos de dados

Quando comparamos modelos de dados do MongoDB com modelos de dados do Cassandra, a maior flexibilidade do primeiro fica mais evidente. O MongoDB realiza gerenciamentos sem necessidade de um esquema real, além de adotar o formato BSON, semelhante ao JSON. Assim, no MongoDB, um cadastro de funcionários poderia ter a seguinte aparência:

```bson
Funcionário: [ 
{ 
ID_do_funcionário: “1”, 
Nome: “Maria Silva”, 
Cidade: “Recife” 
}, 
{ 
ID_do_funcionário: “2” 
Departamento: “IT”
E-Mail: pedroneto@empresa.com.br 
}]
```

Como já explicado, o Cassandra organiza dados (salvos como pares de valores-chave) com base em tabelas que, por sua vez, dividem-se em linhas e colunas. Comparativamente, o mesmo cadastro de funcionários seria mais ou menos assim, no Cassandra:

```text
ID_do_funcionário 1 Coluna - Nome		Coluna - Cidade 
Valor - Maria Silva	Valor - Recife
ID_do_funcionário 2 Coluna - Nome		Coluna - Departamento		Coluna - E-Mail 
Valor - Pedro Neto	Valor - IT		Valor - pedroneto@empresa.com.br
```

## MongoDB vs. Cassandra: Disponibilidade

É interessante que nossa comparação MongoDB vs. Cassandra também apresente fatos relacionados à disponibilidade dos dados armazenados. Ambos os sistemas protegem seus dados distribuindo **cargas em diferentes nós do servidor**. O MongoDB depende de um único nó primário, que é replicado para assumir o controle no caso de possíveis falhas. Todas as operações de gravação são roteadas para esse nó e, somente então, repassadas às réplicas. Assim, se o nó mestre falhar, outro nó assumirá o controle. O Cassandra, por sua vez, permite que mais nós mestres sejam configurados de antemão, com a estrutura adequada. Dessa forma, se um ou mais nós falharem, sempre haverá um substituto pronto a assumir a responsabilidade.

## MongoDB vs. Cassandra: Compatibilidade e linguagens de programação

Tanto o Cassandra quanto o MongoDB são compatíveis com os principais sistemas operacionais de servidor, já que ambos podem ser executados no Linux, no macOS e no Windows. Ainda, o Cassandra oferece suporte ao BSD e o MongoDB ao Solaris.

Abaixo, apresentamos as linguagens de programação compatíveis com as soluções em comparação:

<table>
  <thead>
    <tr>
      <th>Linguagem de programação</th>
      <th>Compatível com Mongo DB</th>
      <th>Compatível com Cassandra</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Actionscript</td>
      <td></td>
      <td></td>
    </tr>
    <tr>
      <td>C</td>
      <td></td>
      <td></td>
    </tr>
    <tr>
      <td>C#</td>
      <td></td>
      <td></td>
    </tr>
    <tr>
      <td>C++</td>
      <td></td>
      <td></td>
    </tr>
    <tr>
      <td>Clojure</td>
      <td></td>
      <td></td>
    </tr>
    <tr>
      <td>ColdFusion</td>
      <td></td>
      <td></td>
    </tr>
    <tr>
      <td>D</td>
      <td></td>
      <td></td>
    </tr>
    <tr>
      <td>Dart</td>
      <td></td>
      <td></td>
    </tr>
    <tr>
      <td>Delphi</td>
      <td></td>
      <td></td>
    </tr>
    <tr>
      <td>Erlang</td>
      <td></td>
      <td></td>
    </tr>
    <tr>
      <td>Go</td>
      <td></td>
      <td></td>
    </tr>
    <tr>
      <td>Groovy</td>
      <td></td>
      <td></td>
    </tr>
    <tr>
      <td>Haskell</td>
      <td></td>
      <td></td>
    </tr>
    <tr>
      <td>Java</td>
      <td></td>
      <td></td>
    </tr>
    <tr>
      <td>JavaScript</td>
      <td></td>
      <td></td>
    </tr>
    <tr>
      <td>Kotlin</td>
      <td></td>
      <td></td>
    </tr>
    <tr>
      <td>Lisp</td>
      <td></td>
      <td></td>
    </tr>
    <tr>
      <td>Lua</td>
      <td></td>
      <td></td>
    </tr>
    <tr>
      <td>MatLab</td>
      <td></td>
      <td></td>
    </tr>
    <tr>
      <td>Perl</td>
      <td></td>
      <td></td>
    </tr>
    <tr>
      <td>PHP</td>
      <td></td>
      <td></td>
    </tr>
    <tr>
      <td>PowerShell</td>
      <td></td>
      <td></td>
    </tr>
    <tr>
      <td>Prolog</td>
      <td></td>
      <td></td>
    </tr>
    <tr>
      <td>Python</td>
      <td></td>
      <td></td>
    </tr>
    <tr>
      <td>R</td>
      <td></td>
      <td></td>
    </tr>
    <tr>
      <td>Ruby</td>
      <td></td>
      <td></td>
    </tr>
    <tr>
      <td>Scala</td>
      <td></td>
      <td></td>
    </tr>
    <tr>
      <td>Smalltalk</td>
      <td></td>
      <td></td>
    </tr>
    <tr>
      <td>Swift</td>
      <td></td>
      <td></td>
    </tr>
  </tbody>
</table>

## MongoDB vs. Cassandra: Segurança

Quando utilizados na versão básica, tanto o MongoDB quanto o Cassandra transferem parte das responsabilidades de segurança para os usuários. Além de [certificados SSL](https://www.ionos.com/pt-br/digitalguide/sites-de-internet/criar-sites/certificado-ssl/) ou certificados TLS para conexões com clientes e autenticações de usuários, as soluções exigem medidas de segurança mais avançadas, como a configuração de um firewall. Já versões pagas, como a MongoDB Atlas, por exemplo, oferecem **proteção maximizada**, como X.509, criptografia no lado do cliente e do servidor, e integração com Kerberos e LDAP.

## MongoDB vs. Cassandra: Compatibilidade com dispositivos móveis

O Cassandra não dispõe de uma versão especialmente projetada para dispositivos móveis, nem de ferramentas de desenvolvimento para smartphones. Seu concorrente MongoDB, por sua vez, oferece **algumas soluções adaptadas a dispositivos móveis**. O Realm, por exemplo, um sistema de gerenciamento de banco de dados do MongoDB, foi especialmente projetado para rodar em sistemas operacionais móveis. A versão paga do Atlas também disponibiliza recursos para dispositivos móveis.

## Empresas que adotam o MongoDB ou o Cassandra

Como nossa comparação MongoDB vs. Cassandra já deixou claro, essas duas importantes soluções têm diferenças fundamentais. Ambas são, contudo, igualmente populares e utilizadas por empresas de peso. Conheça, abaixo, algumas das empresas que fazem uso do sistema de gerenciamento de banco de dados NoSQL MongoDB:

- Adobe
- Amadeus
- AppScale
- Craftbase
- Disney
- Etsy
- Foursquare
- Lyft
- MTV
- The New York Times
- Via Varejo

Agora, observe a lista de grandes empresas que utilizam o Cassandra. Apesar de a empresa Facebook/Meta não estar presente, por não mais se basear nesse sistema de banco de dados, lembre-se que ela foi quem popularizou a solução.

- Apple
- Discord
- Digg
- Hulu
- Intuit
- Instagram
- Netflix
- Reddit
- Spotify
- X (Twitter)

Dica Nosso Digital Guide explora muitos outros aspectos relacionados a banco de dados. Aprenda, por exemplo, como usar o MongoDB ou acompanhe nossa comparação [MariaDB vs. MySQL](https://www.ionos.com/pt-br/digitalguide/hospedagem/tecnologia-de-hospedagem/mariadb-vs-mysql/). Ainda, conheça os melhores bancos de dados de código aberto, explorando os nossos artigos.


This is a markdown version of: [https://www.ionos.com/pt-br/digitalguide/servidor/conhecimento/mongodb-vs-cassandra/](https://www.ionos.com/pt-br/digitalguide/servidor/conhecimento/mongodb-vs-cassandra/) for AI/LLM consumption.