Este documento presenta una introducción al uso de MongoDB, una base de datos NoSQL. Explica las ventajas de MongoDB sobre las bases de datos SQL tradicionales, como su capacidad para almacenar datos en formato JSON de manera nativa sin necesidad de procesos intermedios. También cubre conceptos clave como documentos, documentos embebidos, enlaces y agregaciones, y proporciona ejemplos prácticos de operaciones CRUD en MongoDB.
2. Objetivos de la Plática
Objetivo: Mostrar una “Big Picture” sobre las ventajas de utilizar MongoDB con detalles finos y
ejemplos prácticos
3. Arturo Govea
Telematics Engineer
-Chief Architect at modelonow.com by Sngular
-Platform “BTL | MOBILE & ANALYTICS” (start-up mintelligence.mx) a logistic
system for retail companies.
Table tennis/Play guitar
https://www.linkedin.com/in/agoveaarch
4. NoSQL(Not Only Sql) vs SQL
● Las aplicaciones actuales crecen velozmente para adaptarse a las nuevas
maneras de consumo
● Esto implica romper paradigmas y ver de diferente perspectiva todo lo que
nos enseñaron… al menos en la creación de software
● El modelo relacional está desde 1970 y SQL desde 1984
“Hay que aprender a
desaprender”
5. Si sabes que guardas sabes que construyes
¿Que tipo de información se almacena?
¿MB,GB...TB?
¿Se escribe más que leer?
¿Se calculan Montos?
¿Solo catálogos?
¿Necesitamos Agregaciones exacta?
¿Se almacenan puntos geolocalizados?
8. POO … ¿Que es un Objeto?
● Un objeto es la abstracción de un ente del mundo real al mundo virtual,
generalmente de todo lo que hacemos
-Consumidor
-Producto
-nombre
-edad
-correo
-celular
-Nombre
-monto
-SKU
-presentación
13. Mitos sobre NoSQL
● No se pueden manejar transacciones, por lo tanto puedes perder datos
● No es bueno para manejar montos($)
● No se puede usar en e-commerce
● No existen Joins por lo tanto no puedes relacionar datos
● No soportan agregaciones de datos
● Solo sirve para pequeñas aplicaciones
● No son robustas
14. Verdades NoSQL
● Pueden ser hasta un 35 veces más rápidas que una base de datos relacional
● Puedes tener soluciones Híbridas y utilizar diferentes NoSQL en el mismo
proyecto
● El soportar las transacciones queda de nuestro lado
● Hay una nueva guerra entre NoSQL
15. MongoDB
● Almacena documentos JSON
(Orientada 100% a objetos)
● Soporta tolerancia a fallos y escala
horizontalmente casi instantáneamente
● El verdadero poder de mongo es el
soportar documentos embebidos
● Tiene un poderoso Query Language
(Agregation Pipeline) para poder
explotar los datos
● Soporta agregación exacta
26. Verdades NoSQL 2
● Las colecciones tienen un tamaño máximo de 32 MB (no muy recomendable)
● Por default el tamaño de las colecciones son de 16 MB
● Cuando se modifica un documento esta se bloquea (Atomicidad)
● Las agregaciones regresan 1 documento por lo que estan limitadas de 16 a
32 MB
● Los id de mongo son irrepetibles, ya que toman el timestamp, macaddress y
un numero random para su generación
● Mongo debe soporte índices únicos
● Para mejorar el performance hay que utilizar índices
● Mientras más se utilicen índices más se tarda en hacer el insert
27. Map Reduce & Agregation Pipeline
● ¿ Que nos dicen los datos si no los podemos agrupar ?
● ¿Que pasa si los datos están distribuidos en múltiples nodos?
● El escalamiento horizontal supone un reto para muchos casos de uso, en
especial para las agregaciones en datos que están distribuidos en la nube