Banco de dados orientados a documentos

Bom, neste artigo vou apresentar um banco de dados orientado a documentos usando CouchDB, um dos mais populares do ramo, e vou passar uma dica introdutória de comandos básicos e um poco de teoria.

[ Hits: 50.999 ]

Por: C00L3R_ em 25/08/2010 | Blog: https://github.com/CoolerVoid


Usando o Curl com CouchDB



Bom, vamos usar o curl para fazer comunicação com CouchDBi, assim você entende a prática sem códigos longos em linguagens. Estou tentando ser mais transparente possível.

Argvs do Curl

  • -d : usaremos para comunicação com JavaScript Object Notation (JSON)
  • -X : usaremos para comunicação HTTP para enviar GET, PUT, POST e DELETE.
  • -v : isso é opcional caso queira ver os detalhes no modo de verbose

Comandos no banco

Criando banco chamado "contacts" e outro chamado "books":

curl -X PUT http://127.0.0.1:5984/contacts
$ curl -X PUT http://127.0.0.1:5984/books


Listando todos os bancos:

curl -X GET http://127.0.0.1:5984/_all_dbs

Apagar banco "books":

curl -X DELETE http://127.0.0.1:5984/books

Para pegar informações do banco:

curl -X GET http://127.0.0.1:5984/contacts

Comandos de documentos

Criando documentos no banco exemplo "johndoe":

curl -X PUT http://127.0.0.1:5984/contacts/johndoe -d "{}"

Caso queira ver o documento criado:

curl -X GET http://127.0.0.1:5984/contacts/johndoe

Caso queira apagar um documento específico:

curl -X DELETE http://127.0.0.1:5984/contacts/johndoe?rev=1-795358690

Vamos criar um documento diferente com as hashs:

{
"firstName": "Joe",
"lastName": "Lennon",
"email": "joe@joelennon.ie"
}

curl -X PUT http://127.0.0.1:5984/contacts/joelennon -d '{"firstName": "Joe", "lastName": "Lennon", "email": "joe@joelennon.ie"}'

Então listamos...

curl -X GET http://127.0.0.1:5984/contacts/joelennon {"_id": "joelennon", "_rev": "1-45597617", "firstName": "Joe", "lastName": "Lennon", "email": "joe@joelennon.ie"}

Vamos mudar o ID:

curl -X COPY http://127.0.0.1:5984/contacts/joelennon -H "Destination: johnsmith"

Vendo o que foi criado:

curl -X GET http://127.0.0.1:5984/contacts/johnsmith

Agora seguindo outro documento. Analisando a hash do JSON:

{
"firstName": "John",
"lastName": "Smith",
"email": [
"johnsmith@example.com",
"jsmith@example.com"
],
"phone": "(555) 555-5555"
}

curl -X PUT http://127.0.0.1:5984/contacts/johnsmith -d '{"_rev": "1-4152282996", "firstName": "John", "lastName": "Smith", "email": [ "johnsmith@example.com", "jsmith@example.com" ], "phone": "(555) 555-5555";}'

Comandos VIEWs

Bom, view seria um tipo de filtro para definirmos quais dos dados vão ser mostrados. Vamos passar os dados.

View sem filtro, equivalente a um "select * from table" em bancos relacionais:

curl -X GET http://127.0.0.1:5984/contacts/_all_docs

Agora usamos view com uma ordem:

curl -X GET http://127.0.0.1:5984/contacts/_all_docs?descending=true

Mesma view, porém limitamos para apenas mostrar 1 documento:

curl -X GET http://127.0.0.1:5984/contacts/_all_docs?descending=true\&limit=1

View que mostra todos os documentos e seus conteúdos:

curl -X GET http://127.0.0.1:5984/contacts/_all_docs?include_docs=true

Uma view que lista documentos por ID em sequência:

curl -X GET http://127.0.0.1:5984/contacts/_all_docs_by_seq

Página anterior     Próxima página

Páginas do artigo
   1. Introdução ao CouchDB
   2. Conceito REST
   3. Instalando o CouchDB
   4. Gerenciador visual "futon"
   5. Usando o Curl com CouchDB
   6. Views na prática - exemplo Blog
Outros artigos deste autor

Apache + PHP + MySQL + ftpd no OpenBSD

Trabalhando com arquivos no Perl

Usando o PF - Packet Filter

Buffer Overflow: Entendendo e explorando

Ponteiros - Saindo de Pesadelos

Leitura recomendada

SQLite 3 - Convertendo tabelas do LibreOffice em Banco de Dados

Desafios da Segurança de Informação

Apache Cassandra NoSQL, uma tecnologia emergente

Instalando Interbase 2007 Developer em Linux OpenSuSE 10.2

Desenvolvimento de uma interface WEB com PHP para gerenciamento de banco de dados CouchDB

  
Comentários
[1] Comentário enviado por douglascrp em 31/08/2010 - 09:00h

muito interessante... não conhecia

abraço

[2] Comentário enviado por dastyler em 01/09/2010 - 22:33h

Eu experimentei um tempo atras o CouchDb mas infelizmente devido a falta de tempo com inumeros projetos tive de parar os testes.
MAs gostei do artigo. Muito interessante, apesar de que o CouchDb não é uma novidade. A galera que é adepta de Xp (Extreme Programming) já usa o mesmo tem um tempinho.
De qualquer maneira o artigo está muito bom, direto simples e sem firulas.

Parabens!!



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts