David Luque QuintanaMongo University
Quien soy
● David Luque Quintana● Graduado en Ing.
Informática● GDG Córdoba● Desarrollador MEAN● Iternox Semper
¿Que es MongoDB?
● Base de datos no relacional (noSQL)
● Orientada a documentos (JSON)
● Fácil de entender● Sintaxis simple y clara
¿Que significa no relacional?
Al tener una base de datos no relacional, no tenemos:
● Relaciones entre entidades● Transacciones. Es una unidad
única de trabajo, con varios savepoints y posible retornos.
¿Por qué usar MongoDB?
● Almacenamiento orientado a documentos● Soporte total a índices
○ Índices en cualquier atributo● Replicación y alta disponibilidad
○ Sistemas espejos en LAN y WAN● Escalabilidad horizontal● Consultas● Actualizaciones atómicas● Soporte comercial
¿Qué es JSON?
Acrónimo de JavaScript Object Notation.
Son documentos que guardan datos en notación de JavaScript
¿Qué es JSON?
Para quien sepa Python, son muy parecidos a los diccionarios.
Son documentos de tipo “clave : valor”
{ nombre : David, ciudad : Cordoba }
Por qué usar JSON
Con JSON podemos almacenar casi todo lo imaginable. Son documentos muy flexibles y de una sencilla notación.
Pongamos unos ejemplos
Por qué usar JSON
{ nombre : David, notas : { PW : 9, AC : 7,5 } }{ nombre : David, notas : [ { PW : 9 }, { AC : 7,5 } ] }
Los archivos de MongoDB no pueden ser superiores a 16MB.
Como instalar MongoDB
Primer contacto
Insertar un elemento
Mostrar elementos - find()
Mostrar sólo un elemento - findOne()
db es un identificador de conexión con la base de datos
Si vemos el valor de db nos muestra en qué base de datos estamos
Una colección es un conjunto de documentos en particular
Primer contacto
Sin esquema
MongoDB se adapta a las iteraciones de las metodologías ágiles ya que no tiene una estructura como las bases de datos relacionales
Read
Al leer de la base de datos tenemos tres opciones:● Extraer todos los elementos de la misma.● Extraer sólo lo que nos interesa.● Extraer sólo uno.
Read - filtros
Una vez que tengamos muchos documentos, podemos filtrar introduciendo un campo en el find
Read - operadores
Normalmente no trabajamos con valores constantes y debemos usar operadores (mayor que, menor que…)
Read - operadores
Podemos comprobar si un campo existe $exists
O si el campo es una cadena (especificación de BSON) $type
Read - findOne()
Para extraer sólo un documento usamos findOne(). Lo mejor es buscar por id.
La id la crea mongo al insertar el documento automáticamente y es única
Update - update()
El primer argumento es una consulta para buscar el documento. El segundo es para actualizarlo.
Cuidado! El documento cambia drásticamente si no tenemos cuidado con los update
Update
Operaciones con el operador “.”
Podemos ir encadenando subdocumentos y accediendo con el operador “.”
Update
Con $pop expulsamos desde la cabeza el elemento que queramos
Si ponemos 1, es una cola. Si ponemos 5, cuenta desde 1 hasta cinco desde la cabeza y expulsa el 4
Update
Podemos insertar varios elementos con $pushAll y también elimiar varios con $pullAll
También podemos borrar elementos sin importar la posición con $pull
Delete
Usamos para borrar el método remove(). Básicamente funciona como find(). Si no ponemos argumento borra todos los elementos.
¿Qué son los índices?
● El indexado es básico para mejorar rendimiento.
● Ordenamiento de la colección según un atributo.
● Son listas ordenadas de claves.● Se ordenan por niveles.● 500 MB de RAM por índice.
¿Por qué usar índices?
● Usando find() recorremos toda la base de datos.
● Usando findOne() hasta que encontremos el documento
db.coleccion.find( { _id : 1 } )db.coleccion.findOne( { _id : 10000000 } )
Top Related