Upgrade to Pro — share decks privately, control downloads, hide ads and more …

MongoDB

zoek
June 24, 2013

 MongoDB

Conceptos básicos para el manejo de MongoDB..

zoek

June 24, 2013
Tweet

More Decks by zoek

Other Decks in Programming

Transcript

  1. Resumen MongoDB ¿Qu´ e es MongoDB? CRUD Indexes Aggregation Permisos

    Resumen MongoDB CRUD Indexes Aggregation Permisos Miguel Angel Gordian — MongoDB Aztli 2/34
  2. Resumen MongoDB ¿Qu´ e es MongoDB? CRUD Indexes Aggregation Permisos

    Resumen MongoDB CRUD Indexes Aggregation Permisos Miguel Angel Gordian — MongoDB Aztli 3/34
  3. Resumen MongoDB ¿Qu´ e es MongoDB? CRUD Indexes Aggregation Permisos

    MongoDB La base de datos NoSQL Miguel Angel Gordian — MongoDB Aztli 4/34
  4. Resumen MongoDB ¿Qu´ e es MongoDB? CRUD Indexes Aggregation Permisos

    Caracter´ ısticas • Base de datos • Orientada a documentos • Alto rendimiento • Open source • Horizontally scalable Miguel Angel Gordian — MongoDB Aztli 5/34
  5. Resumen MongoDB ¿Qu´ e es MongoDB? CRUD Indexes Aggregation Permisos

    Caracter´ ısticas • Base de datos • Orientada a documentos • Alto rendimiento • Open source • Horizontally scalable Miguel Angel Gordian — MongoDB Aztli 5/34
  6. Resumen MongoDB ¿Qu´ e es MongoDB? CRUD Indexes Aggregation Permisos

    Caracter´ ısticas • Base de datos • Orientada a documentos • Alto rendimiento • Open source • Horizontally scalable Miguel Angel Gordian — MongoDB Aztli 5/34
  7. Resumen MongoDB ¿Qu´ e es MongoDB? CRUD Indexes Aggregation Permisos

    Caracter´ ısticas • Base de datos • Orientada a documentos • Alto rendimiento • Open source • Horizontally scalable Miguel Angel Gordian — MongoDB Aztli 5/34
  8. Resumen MongoDB ¿Qu´ e es MongoDB? CRUD Indexes Aggregation Permisos

    Caracter´ ısticas • Base de datos • Orientada a documentos • Alto rendimiento • Open source • Horizontally scalable Miguel Angel Gordian — MongoDB Aztli 5/34
  9. Resumen MongoDB ¿Qu´ e es MongoDB? CRUD Indexes Aggregation Permisos

    Documentos Documentos Esencialmente un documento es un array asociativo, los cuales son estructuras de datos que mantienen la informaci´ on en la base de datos. { name: "mongo", type: "DB" } Miguel Angel Gordian — MongoDB Aztli 6/34
  10. Resumen MongoDB ¿Qu´ e es MongoDB? CRUD Indexes Aggregation Permisos

    Open source • Opensource • Github • Licencia AGPL • Iniciado y patrocinado por 10gen • Licencia comerciales • Las contribuciones son bienvenidas Miguel Angel Gordian — MongoDB Aztli 7/34
  11. Resumen MongoDB ¿Qu´ e es MongoDB? CRUD Indexes Aggregation Permisos

    Rendimiento • Escrito en C++ • Uso extensivo de mapeo de memoria de archivos • Soporte completo para ´ ındices primarios y secundarios • Uso de bson para el manejo de los datos • Modelos de documentos (menos trabajo) Miguel Angel Gordian — MongoDB Aztli 8/34
  12. Resumen MongoDB ¿Qu´ e es MongoDB? CRUD Indexes Aggregation Permisos

    Horizontally Scalable Miguel Angel Gordian — MongoDB Aztli 9/34
  13. Resumen MongoDB ¿Qu´ e es MongoDB? CRUD Indexes Aggregation Permisos

    Soporte completo • Consultas Ad hoc • Versatilidad y potencia en consultas • Soporte para operaciones geo-espaciales • Soporte para gran variedad de lenguajes programaci´ on. • Schema flexible Miguel Angel Gordian — MongoDB Aztli 10/34
  14. Resumen MongoDB ¿Qu´ e es MongoDB? CRUD Indexes Aggregation Permisos

    Mongo Shell1 1Es solo javascript y un REPL Miguel Angel Gordian — MongoDB Aztli 11/34
  15. Resumen MongoDB ¿Qu´ e es MongoDB? CRUD Indexes Aggregation Permisos

    mongod mongod Es el demonio que maneja las peticiones de datas, el formato de los datos y el rendimiento de las operaciones en background. Opciones por defecto: • /data/db - Directorio de datos • 27017 - Puerto de comunicaci´ on (usa tcp) Miguel Angel Gordian — MongoDB Aztli 12/34
  16. Resumen MongoDB ¿Qu´ e es MongoDB? CRUD Indexes Aggregation Permisos

    Encedido/Apagado mongod Encendido $ mongod --journal --dbpath=~mymongo/db \ --logpath=~mymongo/logs/log.1 Apagado $ mongod --shutdown $ kill -2 <pid> # SIGINT $ kill -15 <pid> # SIGTERM Miguel Angel Gordian — MongoDB Aztli 13/34
  17. Resumen MongoDB ¿Qu´ e es MongoDB? CRUD Indexes Aggregation Permisos

    Resumen MongoDB CRUD Indexes Aggregation Permisos Miguel Angel Gordian — MongoDB Aztli 14/34
  18. Resumen MongoDB ¿Qu´ e es MongoDB? CRUD Indexes Aggregation Permisos

    ¿Qu´ e es el CRUD? • Creat - Insert • Read - Find • Update - Update • Delete - Remove Miguel Angel Gordian — MongoDB Aztli 15/34
  19. Resumen MongoDB ¿Qu´ e es MongoDB? CRUD Indexes Aggregation Permisos

    ¿Qu´ e es el CRUD? • Creat - Insert • Read - Find • Update - Update • Delete - Remove Miguel Angel Gordian — MongoDB Aztli 15/34
  20. Resumen MongoDB ¿Qu´ e es MongoDB? CRUD Indexes Aggregation Permisos

    ¿Qu´ e es el CRUD? • Creat - Insert • Read - Find • Update - Update • Delete - Remove Miguel Angel Gordian — MongoDB Aztli 15/34
  21. Resumen MongoDB ¿Qu´ e es MongoDB? CRUD Indexes Aggregation Permisos

    ¿Qu´ e es el CRUD? • Creat - Insert • Read - Find • Update - Update • Delete - Remove Miguel Angel Gordian — MongoDB Aztli 15/34
  22. Resumen MongoDB ¿Qu´ e es MongoDB? CRUD Indexes Aggregation Permisos

    Insert Inserta un nuevo documento en la base de datos. db.<coleccion>.insert({clave: valor}) Miguel Angel Gordian — MongoDB Aztli 16/34
  23. Resumen MongoDB ¿Qu´ e es MongoDB? CRUD Indexes Aggregation Permisos

    Find B´ usqueda de elementos. db.<coleccion>.findOne({clave: valor}) db.<coleccion>.find({clave: valor}) Miguel Angel Gordian — MongoDB Aztli 17/34
  24. Resumen MongoDB ¿Qu´ e es MongoDB? CRUD Indexes Aggregation Permisos

    Update Actualizar uno o mas campos del documento db.<coleccion>.update({clave: valor}, {$set: {nuevaclave: nuevovalor}}) Sustituir el documento db.<coleccion>.find({clave: valor}) Eliminar un campo del documento db.<coleccion>.update({clave: valor}, {$unset: {eleminarclave: 1}}) Miguel Angel Gordian — MongoDB Aztli 18/34
  25. Resumen MongoDB ¿Qu´ e es MongoDB? CRUD Indexes Aggregation Permisos

    Remove Eliminar documentos que concuerden con el documento pasado como par´ ametro. db.<coleccion>.remove({clave: valor}) Miguel Angel Gordian — MongoDB Aztli 19/34
  26. Resumen MongoDB ¿Qu´ e es MongoDB? CRUD Indexes Aggregation Permisos

    Contar elemetos Cuenta el numero de elementos devueltos a trav´ es de una consulta. db.<coleccion>.find().count() Miguel Angel Gordian — MongoDB Aztli 20/34
  27. Resumen MongoDB ¿Qu´ e es MongoDB? CRUD Indexes Aggregation Permisos

    Ordenacion Ordenamiento de la consulta ascendentemente a trav´ es del campo cualquiera. db.<coleccion>.find().sort({cualquiera: 1}) Ordenamiento de la consulta descendentemente a trav´ es del campo cualquiera. db.<coleccion>.find().sort({cualquiera: -1}) Miguel Angel Gordian — MongoDB Aztli 21/34
  28. Resumen MongoDB ¿Qu´ e es MongoDB? CRUD Indexes Aggregation Permisos

    Limitar Evita los primeros N elementos. db.<coleccion>.find().skip(N) Limita la consulta a solo N elementos. db.<coleccion>.find().limit(N) Miguel Angel Gordian — MongoDB Aztli 22/34
  29. Resumen MongoDB ¿Qu´ e es MongoDB? CRUD Indexes Aggregation Permisos

    Resumen MongoDB CRUD Indexes Aggregation Permisos Miguel Angel Gordian — MongoDB Aztli 23/34
  30. Resumen MongoDB ¿Qu´ e es MongoDB? CRUD Indexes Aggregation Permisos

    Crear Indice Crear un ´ ındice es una operaci´ on bloqueante que puede llegar a tomar mucho tiempo completarla, para ello se puede agregar la opci´ on background: true, en las opciones. Crear un ´ ındice ascendente db.<coleccion>.ensureIndex({key: 1}) Crear un ´ ındice descendente db.<coleccion>.ensureIndex({key: -1}) Crear un index geo-espacial db.<coleccion>.ensureIndex({locacion: "2d"}) Miguel Angel Gordian — MongoDB Aztli 24/34
  31. Resumen MongoDB ¿Qu´ e es MongoDB? CRUD Indexes Aggregation Permisos

    Resumen MongoDB CRUD Indexes Aggregation Permisos Miguel Angel Gordian — MongoDB Aztli 25/34
  32. Resumen MongoDB ¿Qu´ e es MongoDB? CRUD Indexes Aggregation Permisos

    Definici´ on Aggregation Framework Provee una manera de calcular datos agregados, sin tener que usar map-reduce. Miguel Angel Gordian — MongoDB Aztli 26/34
  33. Resumen MongoDB ¿Qu´ e es MongoDB? CRUD Indexes Aggregation Permisos

    Operaciones $project $match $limit $skip $unwind $group $sort $geoNear Miguel Angel Gordian — MongoDB Aztli 27/34
  34. Resumen MongoDB ¿Qu´ e es MongoDB? CRUD Indexes Aggregation Permisos

    Ejemplo de documento Documento { title : "this is my title" , author : "bob" , posted : new Date () , pageViews : 5 , tags : [ "fun" , "good", "fun" ] , comments : [ { author :"joe" , text : "this is cool" } , { author :"sam" , text : "this is bad" } ], other : { foo : 5 } } Aggregation db.articles.aggregate( { $project : { author : 1, tags : 1, } }, { $unwind : "$tags" }, { $group : { _id : { tags : "$tags" }, authors : { $addToSet : "$author" } } } ); Miguel Angel Gordian — MongoDB Aztli 28/34
  35. Resumen MongoDB ¿Qu´ e es MongoDB? CRUD Indexes Aggregation Permisos

    Resumen MongoDB CRUD Indexes Aggregation Permisos Miguel Angel Gordian — MongoDB Aztli 29/34
  36. Resumen MongoDB ¿Qu´ e es MongoDB? CRUD Indexes Aggregation Permisos

    Agregar usuario Usa db.addUser() para agregar documentos a la colecci´ on system.users collection en la base de datos, la cual crea y mantiene las credenciales en MongoDB. db.addUser( { user: "<user>", userSource: "<database>", roles: [<roles>] } ) Miguel Angel Gordian — MongoDB Aztli 30/34
  37. Resumen MongoDB ¿Qu´ e es MongoDB? CRUD Indexes Aggregation Permisos

    roles read readWrite dbAdmin userAdmin clusterAdmin readAnyDatabase readWriteAnyDatabase userAdminAnyDatabase dbAdminAnyDatabase Miguel Angel Gordian — MongoDB Aztli 31/34
  38. Resumen MongoDB ¿Qu´ e es MongoDB? CRUD Indexes Aggregation Permisos

    mongod bypass Si no existen usuarios en la base de datos, se puede obtener todos los privilegios al conectarse via localhost, para desabilitar bypass se inicia el demonio de la siguiente manera. mongod --setParameter enableLocalhostAuthBypass=0 Miguel Angel Gordian — MongoDB Aztli 32/34
  39. Resumen MongoDB ¿Qu´ e es MongoDB? CRUD Indexes Aggregation Permisos

    Recursos ¿D´ onde continuar? Mongo http://docs.mongodb.org/manual/ El peque˜ no libro de mongo - Karl Seguin (Espa˜ nol) http://goo.gl/Iz9yJ MongoDB: The Definitive Guide, 2nd Edition (Ingles) http://goo.gl/peZ7B Mongo - taller https://speakerdeck.com/zoek1/mongodb Miguel Angel Gordian — MongoDB Aztli 33/34
  40. Resumen MongoDB ¿Qu´ e es MongoDB? CRUD Indexes Aggregation Permisos

    ¿Preguntas? Miguel Angel Gordian [email protected] @capitanzoek Miguel Angel Gordian — MongoDB Aztli 34/34