Share
Embed
Transcript
41 slides
-
Resumen MongoDB ¿Qu´ e es MongoDB? CRUD Indexes Aggregation Permisos
Resumen MongoDB CRUD Indexes Aggregation Permisos Miguel Angel Gordian — MongoDB Aztli 2/34 -
Resumen MongoDB ¿Qu´ e es MongoDB? CRUD Indexes Aggregation Permisos
Resumen MongoDB CRUD Indexes Aggregation Permisos Miguel Angel Gordian — MongoDB Aztli 3/34 -
Resumen MongoDB ¿Qu´ e es MongoDB? CRUD Indexes Aggregation Permisos
MongoDB La base de datos NoSQL Miguel Angel Gordian — MongoDB Aztli 4/34 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
Resumen MongoDB ¿Qu´ e es MongoDB? CRUD Indexes Aggregation Permisos
Horizontally Scalable Miguel Angel Gordian — MongoDB Aztli 9/34 -
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 -
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 -
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 -
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 -
Resumen MongoDB ¿Qu´ e es MongoDB? CRUD Indexes Aggregation Permisos
Resumen MongoDB CRUD Indexes Aggregation Permisos Miguel Angel Gordian — MongoDB Aztli 14/34 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
Resumen MongoDB ¿Qu´ e es MongoDB? CRUD Indexes Aggregation Permisos
Resumen MongoDB CRUD Indexes Aggregation Permisos Miguel Angel Gordian — MongoDB Aztli 23/34 -
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 -
Resumen MongoDB ¿Qu´ e es MongoDB? CRUD Indexes Aggregation Permisos
Resumen MongoDB CRUD Indexes Aggregation Permisos Miguel Angel Gordian — MongoDB Aztli 25/34 -
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 -
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 -
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 -
Resumen MongoDB ¿Qu´ e es MongoDB? CRUD Indexes Aggregation Permisos
Resumen MongoDB CRUD Indexes Aggregation Permisos Miguel Angel Gordian — MongoDB Aztli 29/34 -
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 -
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 -
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 -
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 -
Resumen MongoDB ¿Qu´ e es MongoDB? CRUD Indexes Aggregation Permisos
¿Preguntas? Miguel Angel Gordian [email protected] @capitanzoek Miguel Angel Gordian — MongoDB Aztli 34/34