Pergunta muito antiga, mas está no topo do Google e eu não gosto das respostas que vejo, então aqui está a minha.
O Couchdb tem muito mais do que a capacidade de desenvolver o CouchApps. A maioria das pessoas usa o CouchDb em uma arquitetura da web clássica de três camadas.
Na prática, o fator decisivo para a maioria das pessoas será o fato de o MongoDb permitir consultas ad-hoc com uma sintaxe do tipo SQL, enquanto o CouchDb não (você precisa criar mapa / reduzir visualizações que desativa algumas pessoas, mesmo que essas visualizações sejam criadas). é rápido para o desenvolvimento rápido de aplicativos - eles não têm nada a ver com procedimentos armazenados).
Para abordar os pontos levantados na resposta aceita: O CouchDb possui um ótimo sistema de controle de versão, mas isso não significa que é adequado apenas (ou mais adequado) para locais onde o controle de versão é importante. Além disso, o couchdb é compatível com gravação pesada, graças à sua natureza apenas de acréscimo (as operações de gravação retornam em pouco tempo, garantindo que nenhum dado será perdido).
Uma coisa muito importante que não é mencionada por ninguém é o fato de o CouchDb confiar em índices de árvore b. Isso significa que, se você possui 1 "linha" ou 20 bilhões, o tempo de consulta sempre permanecerá abaixo de 10 ms. Este é um divisor de águas que faz do CouchDb um banco de dados de baixa latência e fácil de ler, e isso realmente não deve ser esquecido.
Para ser justo e exaustivo, a vantagem que o MongoDb tem sobre o CouchDb é o ferramental e o marketing. Eles possuem ferramentas cidadãs de primeira classe para todos os principais idiomas e plataformas, facilitando a integração e isso adicionado às consultas adhoc facilita ainda mais a transição do SQL.
O CouchDb não possui esse nível de ferramentas - mesmo que haja muitas bibliotecas disponíveis hoje -, mas o CouchDb é exposto como uma API HTTP e, portanto, é muito fácil criar um invólucro no seu idioma favorito para conversar com ele. Pessoalmente, gosto dessa abordagem, pois evita inchaço e permite que você tome apenas o que deseja (princípio de segregação de interface).
Então, eu diria que usar um ou outro é em grande parte uma questão de conforto e preferência com seus paradigmas. A abordagem do CouchDb "apenas se encaixa", para certas pessoas, mas se depois de aprender sobre os recursos do banco de dados (no exaustivo guia oficial ) você não tiver o seu momento "inferno sim", provavelmente deverá seguir em frente.
Eu desencorajaria o uso do CouchDb se você quiser usar "a ferramenta certa para o trabalho certo". porque você descobrirá que não pode usá-lo dessa maneira e acabará ficando chateado e escrevendo posts do blog como "Onde estão as associações no CouchDb?" e "Onde está o gerenciamento de transações?". Na verdade, Couchdb é - paradoxalmente - muito transparente, mas ao mesmo tempo exige uma mudança de paradigma e uma mudança na maneira como você aborda os problemas para realmente brilhar (e realmente funcionar).
Mas uma vez que você fez isso, realmente compensa. Eu, pessoalmente, precisaria de razões muito fortes ou de um grande rompimento de um projeto para escolher outro banco de dados, mas até agora não encontrei nenhum.