Criando banco de dados com neDB

Tempo de Leitura ~5 minutos

neDB é um banco de dados que não necessita de instalação, trabalha no formato json e muito rapido!

Instalação

Para instalar basta ir no diretório do seu projeto e rodar o comando:

npm install nedb

Como todo modulo Node.js é instalado.

Crie um arquivo .js para começarmos a digitar nosso código node:

var nedb = require('nedb');
var db = new nedb({filename: 'banco.db', autoload: true});

Na primeira linha definimos o modulo do neDB e em seguida criamos o banco de dados usando o new, aonde o filename é o local e o nome do arquivo do banco de dados, o autoload faz o carregamento automático do banco de dados caso ele já exista no diretório definido no filename.

Vamos criar agora um CRUD

Para quem não sabe CRUD significa: Criar, Recuperar, Atualizar e Deletar ou seja vamos criar um objeto, inserir em nosso DB, depois recuperá-lo, atualizá-lo, etc.

Inserindo novo documento:

vamos criar um objeto usuário, para isso fazemos:

var usuario = {
	nome: "Pedro Henrique",
	idade: 18,
	email: "pedro@gmail.com",
	senha: 123456789
};

Para inserir usamos:

db.insert(usuario, function(err){
 if(err)return console.log(err); //caso ocorrer algum erro

 console.log("Novo usuário adicionado!");
});

Fácil ? Veja que se você ir no diretorio aonde definiu o banco de dados, irá aparecer o arquivo que você definiu e dentro dele estará algo parecido com isso:

{"nome":"Pedro Henrique","idade":18,"email":"pedro@gmail.com","senha":123456789,"_id":"vxJMEAMBFLmkUmKY"}

Veja que ele já atribui um _id ao nosso objeto, oque facilita bastante quando precisarmos procurar por ele para remover, atualizar etc.

Recuperando um documento:

Para recuperarmos todos os documentos pelo nome que definimos no usuário usamos:

db.find({ nome: 'Pedro Henrique' }, function (err, usuarios) {
 if(err)return console.log(err);
 console.log(usuarios);
});

o console ira retornar algo parecido como isto:

[ { nome: 'Pedro Henrique',
    idade: 18,
    email: 'pedro@gmail.com',
    senha: 123456789,
    _id: 'vxJMEAMBFLmkUmKY' } ]

Se quisermos procurar pela idade:

db.find({ idade: 18 }, function (err, usuarios) {
 if(err)return console.log(err);
 console.log(usuarios);
});

Ou e-mail:

db.find({ email: 'pedro@gmail.com' }, function (err, usuarios) {
 if(err)return console.log(err);
 console.log(usuarios);
});

Se você quiser procurar um único documento usamos o findOne:

db.findOne({ email: 'pedro@gmail.com' }, function (err, usuarios) {
 if(err)return console.log(err);

 console.log(usuarios);
});

Atualizando um documento:

Para substituir um documento inteiro usamos:

db.update({ email: 'pedro@gmail.com' }, {nome: "Carlos", email: "carlos@gmail.com"}, {}, function (err) {
 if(err)return console.log(err);

 console.log("Usuário atualizado");
});

o documento que antes era assim:

{"nome":"Pedro Henrique","idade":18,"email":"pedro@gmail.com","senha":123456789,"_id":"vxJMEAMBFLmkUmKY"}

passou a ficar assim:

{ "nome": "Carlos", "email": "carlos@gmail.com",  "_id": "vxJMEAMBFLmkUmKY" }

Agora para atualizar apenas um campo sem alterar todo o documento usamos o $set, veja:

db.update({ email: 'pedro@gmail.com' }, {$set {idade: 19}}, {}, function (err) {
 if(err)return console.log(err);

 console.log("Usuário atualizado");
});

o documento que antes era assim:

{"nome":"Pedro Henrique","idade":18,"email":"pedro@gmail.com","senha":123456789,"_id":"vxJMEAMBFLmkUmKY"}

passou a ficar assim:

{"nome":"Pedro Henrique","idade":19,"email":"pedro@gmail.com","senha":123456789,"_id":"vxJMEAMBFLmkUmKY"}

A idade foi atualizada e manteve o restante do documento intacto.

Removendo um documento:

Para removermos um documento usamos:

db.remove({ _id: "vxJMEAMBFLmkUmKY" }, {}, function (err) {
  if(err)return console.log(err);

  console.log("Usuário removido");
});

Podemos remover usando o campo nome para procurarmos o documento:

db.remove({nome: "Pedro Henrique" }, {}, function (err) {
  if(err)return console.log(err);

  console.log("Usuário removido");
});

Para removermos mais de um documento ao mesmo tempo usamos a opção multi:

db.remove({nome: "Pedro Henrique" }, {multi: true}, function (err) {
  if(err)return console.log(err);

  console.log("Usuário removido");
});

Acho que esse é um resumão do neDB para saber mais informações acesse: https://github.com/louischatriot/nedb tem muito mais opções la, basta da uma olhada, para quem quer usar em projetos simples com o arduino o neDB é muito bom, utilizei ele no meu projeto de Umidade do solo para salvar as informações de umidade, configurações do rele etc, qualquer coisa comente ai, ate mais!

Exibindo sensores com Socket.io e Arduíno

Hoje vamos criar uma pagina html e exibir valores de alguns sensores em tempo real utilizando Socket.io para node.js e johnny-five para Arduíno. Continue Lendo

Primeiros passos com Socket.io

Published on March 02, 2015