Siguiendo con los post sobre CouchDB (CouchDB – base de datos documental, Comenzando con CouchDB, CouchDB (I) – Instalación) ahora hablare sobre como usar couchdb.
En este primer post veremos como crear una base de datos, como acceder a ella, ingresarle datos y otras cosas mas. Es indispensable que tengan algún conocimiento de cUrl, REST y JSON ya que se utiliza estas herramientas para comunicarse con la base de datos couchdb
Crear una base de datos
Para crear una base de datos utilizamos el método PUT
curl -X PUT http://127.0.0.1:5984/users
//si esta todo ok devuelve
{"ok":true}
//si hubo error
{"error":"file_exists","reason":"The database could not be created, the file already exists."}
Si no leyeron los post anteriores, recuerden que CouchDB al ser una base de datos documental no posee una estructura de datos fija y estática como si las tienen las bases de datos relacionales, por lo cual los documentos que se creen dentro de la base de datos “usuarios” podrian tener distinto formato como veremos a continuación
Borrar una base de datos
<pre>curl -X DELETE http://127.0.0.1:5984/perms
<pre>//si esta todo ok devuelve
{"ok":true}
//si hubo error
{"error":"not_found","reason":"missing"}</pre>
</pre>
Agregar documentos a una base de datos
curl -X PUT http://127.0.0.1:5984/users/mostofreddy -d '{"firstName":"Federico","lastName":"Lozada Mosto","nick":"mostofreddy"}'
curl -X PUT http://127.0.0.1:5984/users/homero -d '{"firstName":"Homero","lastName":"Simpson","age":"36","city":"Sprinfield"}'
Como ven, son dos documentos que corresponden a la misma base pero tienen estructura distinta.
Devolver todas las bases de datos
curl -X GET http://127.0.0.1:5984/_all_dbs
Obtener los datos básicos
curl -X GET http://127.0.0.1:5984/users
//nos devuelve en formato JSON
{
"db_name":"user",
"doc_count":0,
"doc_del_count":0,
"update_seq":0,
"purge_seq":0,
"compact_running":false,
"disk_size":79,
"instance_start_time":"1273033142185846",
"disk_format_version":5
}
Copiar de un documento a otro
curl -X COPY http://127.0.0.1:5984/users/mostofreddy -H "Destination: flozadamosto"
Obtener todos los documentos de una base de datos
curl -X GET http://127.0.0.1:5984/users/_all_docs
//nos devuelve en formato JSON
{
"total_rows":2,
"offset":0,
"rows":[
{"id":"mostofreddy","key":"mostofreddy","value":{"rev":"1-967a00dff5e02add41819138abb3284d"}},
{"id":"homero","key":"homero","value":{"rev":"1-32273fce7b3c666c9a28ee3d5731d963"}}
]
}
Obtener todos lso documentos pero en ordenados por id de documento en forma descendente
curl -X GET http://127.0.0.1:5984/users/_all_docs?descending=true
Obtener todos lso documentos limitando la cantidad devuelta
curl -X GET http://127.0.0.1:5984/users/_all_docs?descending=true&limit=1
Obtener todos los documentos pero recuperando tambien toda la información de los documentos
curl -X GET http://127.0.0.1:5984/contacts/_all_docs?include_docs=true
{
"total_rows":4,
"offset":0,
"rows":[
{"id":"mostofreddy","key":"mostofreddy","value":{"rev":"1-32273fce7b3c666c9a28ee3d5731d963"},"doc":{"_id":"mostofreddy","_rev":"1-32273fce7b3c666c9a28ee3d5731d963","firstName":"Federico","lastName":"Lozada Mosto","nick":"mostofreddy"}},
{"id":"homero","key":"homero","value":{"rev":"1-32273fce7b3c666c9a28ee3d5731d963"},"doc":{"_id":"homero","_rev":"1-32273fce7b3c666c9a28ee3d5731d963","firstName":"Homero","lastName":"Simpsons","age":"36","city":"Sprinfield"}}
]
}
[...] This post was mentioned on Twitter by Fede Lozada Mosto. Fede Lozada Mosto said: Blog: Tutorial CouchDB: creando bases de datos http://bit.ly/a8cyFQ [...]
[...] Fuente: Tutorial CouchDB: creando bases de datos | Mostofreddy un blog de … [...]