segunda-feira, 9 de dezembro de 2013

REST - Aula Prática - Brincar com o MongoDB

Nosso projeto atualmente se encontra com a seguinte configuração, já temos o AngularJS, Bootstrap e Node.js, esse último sendo comandado pelo Supervisor, além disso sua funcionalidade é uma única tela capaz de listar os dados que estão no servidor (app.js). O problema é que na camada de Dados temos o "fake" de uma lista que não armazena nada.

Já falei sobre o MongoDB e agora vamos nos aprofundar muito mais nesse banco e seu relacionamento com o Node.js. Já publiquei uma postagem sobre esses dois juntos e recomendo fortemente que leia-o antes de se aventurar aqui pois odeio ser repetitivo.

Tipos Suportados

Um detalhe super interessante no uso do MongoDB com Javascript é a quantidade de tipos nativos que são suportados ou convertidos, vamos a eles:

  • Float é de 8 bytes e diretamente conversível para o tipo Number do Javascript
  • Double Class para uma classe representando um valor float, útil quando se utiliza coleções onde é necessário a garantia que os valores são sempre em ponto flutuante.
  • Integer32 e Integer64 é um pouco mais complicado, pelo fato que o Javascript representa todo número acima dos 64 bits como float, resultado que o máximo valor do inteiro está em 53 bits. O MongoDB possui dois tipos de inteiros, de 32 bits e 64 bits. Resultado que o driver (Mongoose) vai encaixar bem o valor de 32 bits, e se tiver que promovê-lo para 64 bits enquadrá-lo em 53 bits, se puder. Se não for possível retornará uma instância da Long class para evitar a perda de precessão.
  • Long class permite armazenar os inteiros de 64 bits.
  • Três tipos que possuem um mapeamento direto para JavaScript:
    • Date trabalho com datas.
    • RegExp trabalho com expressões regulares
    • String tipo caractere (codificada em UTF-8)
  • Binary Class armazenagem dados grandes.
  • Code Class funções javascript, pode fornecer um escopo para executar esse método.
  • ObjectID Class contém um identificador de documento MongoDB (o equivalente a uma chave primária)
  • DBRef Class inclusão de uma referência em um documento apontando para um outro objeto
  • Symbol Class especificar um símbolo, não é realmente relevante para Javascript, mas para idiomas que suporta o conceito de símbolos.

Adicionar os Dados do MongoDB

Siga a postagem anterior para configurar o projeto com o MongoDB (adicionar o Mongoose ao projeto e o arquivo db.js para realizar a conexão). Com isso pronto inicie e acesse o console do MongoDB e digite os seguintes comandos (pressione Enter ao final de cada uma das linha):
use livro
db.livros.save({nome:'Effective Java', autor:'Joshua Bloch'})
db.livros.save({nome:'Year without Pants', autor:'Scott Berkun'})
db.livros.save({nome:'Confessions of public speaker', autor:'Scott Berkun'})
db.livros.save({nome:'JavaScript Good Parts', autor:'Douglas Crockford'})
db.livros.save({nome:'AngularJS', autor:'Brad Green & Shyam Seshadri'})
db.livros.save({nome:'Node.js in Action', autor:'Mike Cantelon, TJ Holowaychuk & Nathan Rajlich'})
db.livros.save({nome:'Node: Up and Running', autor:'Tom Hughes-Croucher & Mike Wilson'})
Pronto, nesse momento temos a nossa base de livros e autores no MongoDB, próximo passo é fazê-la aparecer na tela. Como sei que deseja tentar realizar isso primeiro deixarei como exercício para nosso próximo encontro.

Obrigado e até a próxima
Fernando Anselmo


0 comentários:

Postar um comentário