O slideshow foi denunciado.

Mongodb praquer-usar-uaijugcloudday2014

550 visualizações

Publicada em

Palestra feita no UaiJUG techDays 2014

Publicada em: Tecnologia
  • Seja o primeiro a comentar

Mongodb praquer-usar-uaijugcloudday2014

  1. 1. Make Presentation much more fun MongoDB - Uso pra que? http://about.me/rogeriofontes Rogério Fontes
  2. 2. Make Presentation much more fun – Quem é? @rogeriofontes •  Apaixonado por desenvolvimento de código e formas ágeis de criá-los. •  Fomentador e evangelista do Open-Source e Open-Hardware, com mais de 10 anos aventurando-se nessa área usando Java e suas tecnologias, android, mongoDB dentre outros e agora apaixonado por AngularJS. •  Co-fundador e Líder do UaiJUG (Grupo de Usuários do Triângulo Mineiro), •  Co-fundador do Triângulo Hackerspace e, •  Novo empreendedor, aventurando em sua nova Start-up (Não da grana nenhuma ainda, só trampo por enquanto. ;) ) Rogério Fontes – Quem é?
  3. 3. Make Presentation much more fun – Quem é? @rogeriofontes MongoDB – Uso pra que? Qualquer lugar desde que planejado
  4. 4. Make Presentation much more fun – Quem é? @rogeriofontes A palestra – Agenda Essa palestra abordará conceitos, para quem quer iniciar nesse noSQL baseado em documentos: •  Definições •  Comparações •  Onde usar e como usar o banco •  Agradecimentos
  5. 5. Make Presentation much more fun – Quem é? @rogeriofontes O Caminho Bora trilhar – “lho” ?
  6. 6. Make Presentation much more fun – Quem é? @rogeriofontes Definições – Database •  Database é um container físico de coleções. •  Cada database recebe o seu próprio conjunto de arquivos no sistema operacional. •  Um servidor simples de MongoDB, tem tipicamente multiplos databases.
  7. 7. Make Presentation much more fun – Quem é? @rogeriofontes Definições – Coleções •  Coleção para o MongoDB é um grupo de documentos. •  Isto é equivalente a uma tabela de um banco relacional. •  A coleção existe dentro de um database simples. •  Com coleções você não precisa de um esquema. •  Documento dentro de uma coleção pode ter diferentes campos. •  Normalmente, todos os documentos em uma coleção são de propósito semelhante ou similares (Ou seja, tem algo relacionado).
  8. 8. Make Presentation much more fun – Quem é? @rogeriofontes Definições – Documentos •  Um documento nada mais é que um conjunto de par chave-valor. •  Documentos são esquemas dinâmicos. •  Esquemas dinâmicos significa que documentos na mesma coleção não precisa ter o mesmo conjunto de campos ou estrutura e campos comuns. •  Em documentos, uma coleção pode conter diferentes tipos de dados.
  9. 9. Make Presentation much more fun – Quem é? @rogeriofontes Comparação – mongoDB X RDBMs RDBMS   MongoDB   Database Database Table Collection Tuple/Row Document column Field Table Join Embedded Documents Primary Key Primary Key (Default key _id provided by mongodb itself)
  10. 10. Make Presentation much more fun – Quem é? @rogeriofontes Ferramentas – Mais usadas Database  Server   Client  Server Mongod mongo
  11. 11. Make Presentation much more fun – Quem é? @rogeriofontes Json, bunitim! – todo mundo curti J { _id: ObjectId(7df78ad8902c) Qtle: 'MongoDB Overview', descripQon: 'MongoDB is no sql database', by: ’uaijug cloud day', url: 'h:p://www.uaijug.com.br', tags: ['mongodb', 'database', 'NoSQL'], likes: 100, comments: [ { user:'user1', message: 'My first comment', dateCreated: new Date(2011,1,20,2,15), like: 0 }, { user:'user2', message: 'My second comments', dateCreated: new Date(2011,1,25,7,45), like: 5} ] }
  12. 12. Make Presentation much more fun – Quem é? @rogeriofontes Bson, Que porra é essa? •  Representa documentos JSON em formato binário chamado BSON. •  BSON Abstrai o modelo de JSON para fornecer tipos de dados adicionais e para ser eficiente para codificação e decodificação em diferentes linguagens.
  13. 13. Make Presentation much more fun – Quem é? @rogeriofontes O que o mongoDB é? •  Escalavél •  Com alta performace •  Open-source •  Orientado a documento
  14. 14. Make Presentation much more fun – Quem é? @rogeriofontes O que o mongoDB é? •  MongoDB's tem a estrutura de dados baseada na flexibilidade, capacidade de Indexação, query data, auto-sharding, isso torna o mongoDB uma ferramenta forte que se adaptar bem as mudanças. •  Isso ajuda a reduzir a complexidade dos banco relacionais.
  15. 15. Make Presentation much more fun – Quem é? @rogeriofontes Porque mongoDB? •  MongoDB é multi-plataforma, orientado a documento, alta performace, alta disponibilidade, fácil de escalar. •  MongoDB, trabalha com o conceito de coleção de documento.
  16. 16. Make Presentation much more fun – Quem é? @rogeriofontes Filosofia •  Reduzir semântica transacional por performace •  Bancos Não-relationais (noSQL) é a melhor maneira de escalar horizontalmente.
  17. 17. Make Presentation much more fun – Quem é? @rogeriofontes Características •  O mongoDB é uma aplicação de código aberto •  Contém uma alta performance , sem esquemas •  Possui uma orientação a documentos •  Foi escrito na linguagem C++
  18. 18. Make Presentation much more fun – Quem é? @rogeriofontes Características •  É formado por um conjunto de documentos JSON •  Não utiliza transações nem joins. •  Quando um aplicativo utiliza esse tipo de banco de dados, o resultado que se tem são consultas simples
  19. 19. Make Presentation much more fun – Quem é? @rogeriofontes Vantages do mongoDB sobre RDBMs •  Não existe schema: MongoDB é uma base de dados que suporta diferentes coleções e differences documentos. •  A estrutura de um documento simples é simples. •  Não tem joins complexos. •  Suporta query dinamicas usando document-based query •  Fácil de escalar
  20. 20. Make Presentation much more fun – Quem é? @rogeriofontes Porque deveria usar mongoDB? •  Documento Orientado Storage : Os dados são guardados em um form, no esQlo de documentos JSON usando Index em qualquer atributo. •  Replicação & Alta Performace •  Auto-Sharding •  Rich Queries •  Suporte professional pela MongoDB
  21. 21. Make Presentation much more fun – Quem é? @rogeriofontes Porque deveria usar mongoDB? •  É Foda mano……….
  22. 22. Make Presentation much more fun – Quem é? @rogeriofontes Quem Utiliza? Dentre outros…
  23. 23. Make Presentation much more fun – Quem é? @rogeriofontes Como instalar e utilizar? •  Instalação do MongoDB no Windows §  http://docs.mongodb.org/manual/tutorial/install- mongodb-on-windows •  Instalação do MongoDB no Linux §  http://docs.mongodb.org/manual/administration/ install- on-linux •  Instalação do MongoDB no Mac §  http://docs.mongodb.org/manual/tutorial/install- mongodb-on-os-x
  24. 24. Make Presentation much more fun – Quem é? @rogeriofontes Principais comandos Iniciar o DB •  Abra o terminal e execute o seguinte comando: $ mongod • Obs: Se você fechar o terminal o serviço do MongoDB vai cair, sendo assim, não feche, e abra um novo para executar os próximos comandos.
  25. 25. Make Presentation much more fun – Quem é? @rogeriofontes Principais comandos Conectar ao DB •  Para conectar no MongoDB, basta executar o comando abaixo: $ mongo • Pronto! Estamos conectado no MongoDB. :-)
  26. 26. Make Presentation much more fun – Quem é? @rogeriofontes Principais comandos Criar database •  O comando para criar uma nova base de dados é: use nomeDaBaseDeDados. •  Vamos, criar a base de dados do nosso cliente, a •  Base de dados do site do UaiJUG: •  $ use siteUaiJUG
  27. 27. Make Presentation much more fun – Quem é? @rogeriofontes Principais comandos Listar database •  Listar todas as bases dados existentes no MongoDB? $ show dbs
  28. 28. Make Presentation much more fun – Quem é? @rogeriofontes Principais comandos Acessar database •  Como acessar uma base de dados no MongoDB? $ use suaBaseDeDados
  29. 29. Make Presentation much more fun – Quem é? @rogeriofontes Principais comandos Verificar database •  Como verificar em qual base de dados você esta no MongoDB? $ db
  30. 30. Make Presentation much more fun – Quem é? @rogeriofontes Principais comandos Criar uma coleção •  Como criar uma estrutura de dados (collection) no MongoDB? $ db.createCollection(‘palestrante’) •  Após a execução do médoto, você terá o seguinte retorno de sucesso: { "ok" : 1 }
  31. 31. Make Presentation much more fun – Quem é? @rogeriofontes Principais comandos Listar todas coleções •  Como listar todas as estruturas de dados (collections) existentes na base de dados do MongoDB? $ show collections
  32. 32. Make Presentation much more fun – Quem é? @rogeriofontes Principais comandos Inserir na coleção •  Comoinserir(insert)naestrutadedados(collec?on)no MongoDB? db.palestrante.insert({ name:‘Rogériofontes’, twitter:‘@rogeriofontes’, mensagem: ‘Inserindo palestrante no MongoDB’ }) •  Se a collecção não existe ela será recriada automaticamente, sempre cuidado para não duplicar dados.
  33. 33. Make Presentation much more fun – Quem é? @rogeriofontes Principais comandos Listar dados na coleção •  Como visualizar os dados que estão dentro de uma estrutura de dados (collection) no MongoDB? •  $ db.palestrante.find() O retorno não é muito agradável, ficando na seguinte forma: {"_id": ObjectId("21252b31e3b6e54896b6c8010113123f"), "name" : " Rogério fontes ", " twitter " : "@rogeriofontes ", "mensagem" : " Inserindo palestrante no MongoDB " }
  34. 34. Make Presentation much more fun – Quem é? @rogeriofontes Principais comandos Listar dados na coleção •  Como visualizar os dados que estão dentro de uma estrutura de dados (collection) no MongoDB? •  Podemos adicionar o pretty(), o comando fica da seguinte forma: •  $db.palestrante.find().pretty()
  35. 35. Make Presentation much more fun – Quem é? @rogeriofontes Principais comandos Listar dados na coleção •  E o retorno: { "_id" : ObjectId("21252b31e3b6e54896b6c8010113123f"), "name" : " Rogério fontes ", " twitter" : " @rogeriofontes ", "mensagem" : " Inserindo palestrante no MongoDB " }
  36. 36. Make Presentation much more fun – Quem é? @rogeriofontes Principais comandos Alterar dados na coleção •  Como atualizar (update) os dados que estão dentro de uma estrutura de dados (collection) do MongoDB? $ db.palestrante.update({name: ‘Rogério fontes’}, {$set: {twi:er: ‘@pres’}}) •  O comando $set faz com que seja mantido todos os dados, e alterado apenas os dados desejados.
  37. 37. Make Presentation much more fun – Quem é? @rogeriofontes Principais comandos Remover dados na coleção •  Como remover (remove) os dados que estão dentro de uma estrutura de dados (collection) no MongoDB? $ db.palestrante.remove({name: ‘Rogério Fontes’}) •  Para remover todos os dados da collection palestrante, basta não passar nenhum parâmetro para o método: $ db.contato.remove()
  38. 38. Make Presentation much more fun – Quem é? @rogeriofontes Principais comandos Deletar uma coleção •  Como deletar (drop) uma estrutura de dados (collection) no MongoDB? $ db.contato.drop() •  Retorna: true
  39. 39. Make Presentation much more fun – Quem é? @rogeriofontes Principais comandos Deletar uma coleção •  Como deletar (drop) uma estrutura de dados (collection) no MongoDB? $ db.palestrante.drop() •  Retorna: true
  40. 40. Make Presentation much more fun – Quem é? @rogeriofontes Principais comandos Deletar database •  Como deletar (drop) uma base de dados no MongoDB? $ db.dropDatabase()
  41. 41. Make Presentation much more fun – Quem é? @rogeriofontes Relecionamento com Dev`s •  http://planet.mongodb.org/
  42. 42. Make Presentation much more fun – Quem é? @rogeriofontes Cursos Grátis •  https://university.mongodb.com/ Cursos: •  C100DBA: MongoDB Certified DBA Associate Exam •  C100DEV: MongoDB Certified Developer Associate Exam •  M101J: MongoDB for Java Developers (Coached) •  M101J: MongoDB for Java Developers •  M101JS: MongoDB for Node.js Developers •  M101P: MongoDB for Developers •  M102: MongoDB for DBAs •  M202: MongoDB Advanced Deployment and Operations
  43. 43. Make Presentation much more fun – Quem é? @rogeriofontes Demo
  44. 44. Make Presentation much more fun – Quem é? @rogeriofontes Obrigado { "Palestra": "MongoDB - Uso pra que? ", "Evento":"UaiJUG cloudDay", "redes sociais":[ {“twitter","@rogeriofontes "}, {“About-me","http://about.me/rogeriofontes"}, ], "messages":[ "Obrigado", "thanks", "Vlw”] }

×