Caracter´ ısticas • Base de datos • Orientada a documentos • Alto rendimiento • Open source • Horizontally scalable Miguel Angel Gordian — MongoDB Aztli 5/34
Caracter´ ısticas • Base de datos • Orientada a documentos • Alto rendimiento • Open source • Horizontally scalable Miguel Angel Gordian — MongoDB Aztli 5/34
Caracter´ ısticas • Base de datos • Orientada a documentos • Alto rendimiento • Open source • Horizontally scalable Miguel Angel Gordian — MongoDB Aztli 5/34
Caracter´ ısticas • Base de datos • Orientada a documentos • Alto rendimiento • Open source • Horizontally scalable Miguel Angel Gordian — MongoDB Aztli 5/34
Caracter´ ısticas • Base de datos • Orientada a documentos • Alto rendimiento • Open source • Horizontally scalable Miguel Angel Gordian — MongoDB Aztli 5/34
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
Open source • Opensource • Github • Licencia AGPL • Iniciado y patrocinado por 10gen • Licencia comerciales • Las contribuciones son bienvenidas Miguel Angel Gordian — MongoDB Aztli 7/34
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
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
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
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
Remove Eliminar documentos que concuerden con el documento pasado como par´ ametro. db.<coleccion>.remove({clave: valor}) Miguel Angel Gordian — MongoDB Aztli 19/34
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
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
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
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
Definici´ on Aggregation Framework Provee una manera de calcular datos agregados, sin tener que usar map-reduce. Miguel Angel Gordian — MongoDB Aztli 26/34
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
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
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