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.435 ]

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

Bind: Explorando e evitando falhas

Trabalhando com arquivos no Perl

Usando o NetBSD como desktop

Apache + PHP + MySQL + ftpd no OpenBSD

BSD Sockets em linguagem C

Leitura recomendada

Banco de dados e Cloud Computing, melhor opção?

Apache Cassandra NoSQL, uma tecnologia emergente

Banco de dados Livre X Proprietário

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