mongodb couchdb database

¿MongoDB y CouchDB son sustitutos perfectos?



database (6)

Todavía no me he ensuciado las manos ni con CouchDB ni con MongoDB, pero me gustaría hacerlo pronto ... También he leído un poco sobre ambos sistemas y me parece que cubren los mismos casos ... o estoy ¿Me falta una característica distintiva clave?

Me gustaría utilizar un almacenamiento basado en documentos en lugar de un RDBMS tradicional en mi próximo proyecto. También necesito el almacén de datos para

  • manejar objetos binarios grandes (imágenes y videos)
  • replicarse automáticamente a nodos físicamente separados
  • haciendo que la necesidad de un RDBMS adicional sea superflua

¿Ambos son igualmente adecuados para estos requisitos?

¡Gracias!



De hecho, los he usado bastante extensamente, tanto para proyectos muy diferentes.

Yo diría que son igualmente adecuados para los requisitos que enumera, sin embargo, hay bastantes diferencias entre los dos. IMO, la más grande es su capacidad de consulta. CouchDB no tiene ''consultas'' en el sentido RDBMS (seleccione * de ...) sino que usa '' views '' que son más como procedimientos almacenados (esencialmente, consultas estáticas definidas en la base de datos (1) ). MongoDB tiene muchas más consultas ''habituales'' .

Básicamente se trata de los requisitos de su aplicación. Si proporciona más información, podría arrojar más luz sobre lo que podría importar en esa situación.

(1) : puede tener consultas temporales no estáticas en CouchDB, pero no se recomiendan para uso de producción


Desde el punto de vista de un desarrollador, la mayor diferencia son las consultas en vivo de mongo frente a la vista de sofá (que debe ser "compilada"). Desde un punto de vista operativo, el sofá está trabajando completamente en http-rest. Si puede configurar servidores http, sabe cómo configurar coach. Con Mongo debes aprender a configurar los servidores de configuración, el conjunto de réplicas y los mongos (tipo de equilibrador).


La replicación de CouchDB está hecha para mantener geográficamente separados los sitios sincronizados. Maneja correctamente errores de red y otros al reiniciar la replicación donde se quedó. Los nodos participantes incluso se pueden desconectar de forma deliberada.


Mongo usa consultas más "tradicionales". Active la indexación por clave y use una sintaxis de consulta SQLish.

Las vistas de CouchDB pueden hacer una indexación y relaciones mucho más profundas, pero requieren que hagas un poco más de trabajo y entiendas cómo funciona la clasificación de claves para realizar las consultas.

También hay una gran diferencia en los sistemas de replicación. La replicación de Mongo se parece mucho a la mayoría de las soluciones RDBMS con maestros y esclavos y todo eso. La replicación de CouchDB es más de igual a igual, sin master / slave, cada CouchDB es un nodo.