Desarrollado por | Fundación de software Apache , Damien Katz , Jan Lehnardt , Noah Slater , Christopher Lenz , J. Chris Anderson |
---|---|
Primera versión | 2005 |
Última versión | 3.1.1 (17 de septiembre de 2020) |
Depositar | github.com/apache/couchdb |
Escrito en | Erlang , JavaScript , C ++ y C |
Sistema de explotación | Linux , Microsoft Windows y macOS |
Medio ambiente | Multiplataforma |
Tipo | Base de datos orientada a documentos |
Licencia | Licencia Apache 2.0 |
Sitio web | couchdb.apache.org |
Apache CouchDB es un sistema de gestión de bases de datos orientado a documentos escrito en lenguaje Erlang y distribuido bajo la licencia Apache .
Diseñado para la Web , es parte del movimiento NoSQL y fue diseñado para poder distribuirse en un grupo de servidores .
En lugar de estar ordenada en filas y columnas, la base de datos CouchDB es una colección de documentos JSON . Además, CouchDB contiene un servidor HTTP que permite realizar solicitudes y devuelve sus datos en formato JSON . Puede consultar un servidor CouchDB directamente con un navegador web o puede ejecutar solicitudes con JavaScript . Las principales operaciones realizadas son MAP y REDUCIR , consulte el artículo de MapReduce . Estas operaciones son útiles cuando la base de datos está distribuida, están sujetas a restricciones de conmutatividad, asociatividad e idempotencia .
Los datos pueden tomar cualquier tipo atómico: cadenas, enteros, número de punto flotante y tipos booleanos. Por ejemplo:
"Título": "El mejor libro"% cadena de tipo de título
"Edición": 2015% tipo de edición entero
Los documentos son objetos JSON compuestos por pares clave-valor, donde los valores pueden ser de varios tipos
Cada documento tiene un identificador (_id) y un número de revisión (_rev). Cada actualización crea una nueva versión, con el mismo _id pero con un número de revisión diferente.
Supongamos que tenemos un determinado documento que tiene un determinado identificador (_id) y un número de revisión (2_id1). Suponga que hay dos usuarios (ut_1 y ut_2) que desean escribir en este documento. El primero en llegar transformará la versión a (3_id1). Cuando llega el segundo, no puede escribir porque quiere escribir en (2_id1) que ya no existe.
Para saber qué bases de datos ya están presentes:
Obtenga una base de datos en particular, por ejemplo aquí películas:
Cada documento en CouchDB tiene un identificador. Este ID es exclusivo de la base de datos. Para obtener un UUID
Para realizar cambios, debe utilizar otros métodos HTTP : POST, GET, PUT y DELETE.
Por ejemplo para agregar:
curl –X PUT HTTP://localhost:5984/films/ a0b611169309cf4acfd6c19afc001eb4 \ -d ‘{“cle”:”valeur”}’Para eliminar un documento, debe dar su revisión, leer el documento antes de poder eliminarlo. CouchDB no elimina como tal, sino que crea una nueva versión sin el documento eliminado.
curl -i -X DELETE \ "http://localhost:5984/films/74c7a8d2a8548c8b97da748f43000f1b" \ -H "If-Match: 2-17e4ce41cd33d6a38f04a8452d5a860b"