Pregunta muy antigua pero está en la parte superior de Google y no me gustan las respuestas que veo, así que aquí está la mía.
Couchdb es mucho más que la capacidad de desarrollar CouchApps. La mayoría de las personas usan CouchDb en una arquitectura web clásica de 3 niveles.
En la práctica, el factor decisivo para la mayoría de las personas será el hecho de que MongoDb permite consultas ad-hoc con una sintaxis similar a SQL, mientras que CouchDb no (debe crear un mapa / reducir vistas que apaga a algunas personas a pesar de crear estas vistas) es rápido para el desarrollo de aplicaciones: no tienen nada que ver con los procedimientos almacenados).
Para abordar los puntos planteados en la respuesta aceptada: CouchDb tiene un excelente sistema de versiones, pero eso no significa que solo sea adecuado (o más adecuado) para los lugares donde las versiones son importantes. Además, couchdb es fácil de escribir gracias a su naturaleza de solo agregar (las operaciones de escritura regresan en muy poco tiempo al tiempo que garantiza que nunca se perderán datos).
Una cosa muy importante que nadie menciona es el hecho de que CouchDb se basa en índices de b-tree. Esto significa que si tiene 1 "fila" o 20 mil millones, el tiempo de consulta siempre será inferior a 10 ms. Este es un cambio de juego que hace que CouchDb sea una base de datos de baja latencia y fácil de leer, y esto realmente no debe pasarse por alto.
Para ser justos y exhaustivos, la ventaja que MongoDb tiene sobre CouchDb es el herramental y el marketing. Tienen herramientas ciudadanas de primera clase para todos los principales idiomas y plataformas que facilitan la incorporación y esto, sumado a sus consultas ad hoc, hace que la transición de SQL sea aún más fácil.
CouchDb no tiene este nivel de herramientas, a pesar de que hay muchas bibliotecas disponibles en la actualidad, pero CouchDb está expuesto como una API HTTP y, por lo tanto, es bastante fácil crear un contenedor en su idioma favorito para hablar con él. Personalmente, me gusta este enfoque, ya que evita la hinchazón y le permite tomar solo lo que desea (principio de segregación de interfaz).
Entonces, diría que usar uno u otro es en gran medida una cuestión de comodidad y preferencia con sus paradigmas. El enfoque de CouchDb "simplemente encaja", para ciertas personas, pero si después de conocer las características de la base de datos (en la exhaustiva guía oficial ) no tiene su momento de "demonios, sí", probablemente debería seguir adelante.
Desalentaría el uso de CouchDb si solo desea usar "la herramienta adecuada para el trabajo correcto". porque descubrirás que no puedes usarlo de esa manera y terminarás enojado y escribiendo publicaciones de blog como "¿Dónde están las uniones en CouchDb?" y "¿Dónde está la gestión de transacciones?". De hecho, Couchdb es, paradójicamente, muy transparente, pero al mismo tiempo requiere un cambio de paradigma y un cambio en la forma de abordar los problemas para que realmente brille (y realmente funcione).
Pero una vez que lo hayas hecho, realmente vale la pena. Personalmente, necesito razones muy fuertes o un factor decisivo en un proyecto para elegir otra base de datos, pero hasta ahora no he conocido ninguna.