Veja os links a seguir
- CouchDB vs MongoDB
- MongoDB ou CouchDB - adequado para produção?
- DB-Engines - Comparação CouchDB vs. MongoDB
Atualizar :Achei ótima comparação de NoSQL bancos de dados.
MongoDB (3.2)
- Escrito em:C++
- Ponto principal:armazenamento de documentos JSON
- Licença:AGPL (Drivers:Apache)
- Protocolo:personalizado, binário (BSON)
- Replicação mestre/escravo (failover automático com conjuntos de réplicas)
- Fragmentação integrada
- Consultas são expressões javascript
- Executar funções javascript arbitrárias no lado do servidor
- Tem indexação e consultas geoespaciais
- Vários mecanismos de armazenamento com diferentes características de desempenho
- Desempenho sobre os recursos
- Validação do documento
- Diário
- Estrutura de agregação poderosa
- Em sistemas de 32 bits, limitado a ~2,5 Gb
- Pesquisa de texto integrada
- GridFS para armazenar big data + metadados (não realmente um FS)
- Conhece o data center
Melhor usado :Se você precisar de consultas dinâmicas. Se você preferir definir índices, não funções de mapeamento/redução. Se você precisa de um bom desempenho em um grande banco de dados. Se você queria o CouchDB, mas seus dados mudam muito, enchendo os discos.
Por exemplo :Para a maioria das coisas que você faria com MySQL ou PostgreSQL, mas ter colunas predefinidas realmente o impede.
CouchDB (1.2)
- Escrito em:Erlang
- Ponto principal:consistência do banco de dados, facilidade de uso
- Licença:Apache
- Protocolo:HTTP/REST
- Replicação bidirecional (!),
- contínuo ou ad hoc,
- com detecção de conflito,
- assim, replicação mestre-mestre. (!)
- MVCC - operações de gravação não bloqueiam leituras
- Versões anteriores de documentos estão disponíveis
- Design somente para falhas (confiável)
- Precisa de compactação de tempos em tempos
- Visualizações:mapa/redução incorporado
- Formatação de visualizações:listas e programas
- Validação de documentos do lado do servidor possível
- Autenticação possível
- Atualizações em tempo real por meio de '_changes' (!)
- Manuseio de anexos
Melhor usado :para acumular, ocasionalmente alterar dados, nos quais as consultas predefinidas devem ser executadas. Lugares onde o controle de versão é importante.
Por exemplo :CRM, sistemas CMS. A replicação mestre-mestre é um recurso especialmente interessante, permitindo implantações fáceis em vários locais.