SlideShare una empresa de Scribd logo
1 de 41
Descargar para leer sin conexión
David Luque Quintana
Mongo 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
Esquema de una app
Primer contacto
Abrir terminal: mongo
Elegir base de datos
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
CRUD
Create - Read - Update - Delete
Create
Sólo tenemos una función para insertar
documentos en MongoDB
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 - find()
Con find() extraemos todos los documentos de
la colección
Read - find()
Si queremos ver los resultados más vistosos
usamos pretty()
Read - filtros
Una vez que tengamos muchos documentos,
podemos filtrar introduciendo un campo en el
find
Read - filtros
Con un segundo argumento en find() podemos
pedir que nos retorne o no los campos
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 - operadores
Si necesitas usar expresiones regulares →
libpcre → $regex
Read - operadores
Operador $or
Read - operadores
Operador $and
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
Para añadir nuevos campos a un documento
usamos el operador $set
Update
Si queremos borrar un atributo lo elegimos con
$unset y le damos valor 1
Update
Operaciones con el operador “.”
Podemos ir encadenando subdocumentos y
accediendo con el operador “.”
Update
Podemos usar los arrays como si fuesen colas
Con $push introducimos por la cola
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.
Delete - drop()
● Computacionalmente más eficiente
● Borra los índices
Índices
¿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 } )
Creación de índices
● Orden ascendente
○ db.coleccion.ensureIndex( { nombre : 1 } ).
● Orden descendente.
○ db.coleccion.ensureIndex( { nombre : -1 } ).

Más contenido relacionado

Destacado

Sevilla Mongo Developers Group - MongoDB: Cómo aprendimos que la culpa era nu...
Sevilla Mongo Developers Group - MongoDB: Cómo aprendimos que la culpa era nu...Sevilla Mongo Developers Group - MongoDB: Cómo aprendimos que la culpa era nu...
Sevilla Mongo Developers Group - MongoDB: Cómo aprendimos que la culpa era nu...Francisco Javier Baena Ríos
 
Así que pusiste MongoDB. Dime ¿cómo lo administras?
Así que pusiste MongoDB. Dime ¿cómo lo administras?Así que pusiste MongoDB. Dime ¿cómo lo administras?
Así que pusiste MongoDB. Dime ¿cómo lo administras?Alejandro E Brito Monedero
 
Procesamiento masivo de datos en MongoDB
Procesamiento masivo de datos en MongoDBProcesamiento masivo de datos en MongoDB
Procesamiento masivo de datos en MongoDBStratio
 
Mongo db improve the performance of your application codemotion2016
Mongo db improve the performance of your application codemotion2016Mongo db improve the performance of your application codemotion2016
Mongo db improve the performance of your application codemotion2016Juan Antonio Roy Couto
 
Postgres como base de datos NoSQL. Codemotion 2015
Postgres como base de datos NoSQL. Codemotion 2015Postgres como base de datos NoSQL. Codemotion 2015
Postgres como base de datos NoSQL. Codemotion 2015Ruben Gómez García
 
mongoDB - Arquitectura y Componentes
mongoDB - Arquitectura y ComponentesmongoDB - Arquitectura y Componentes
mongoDB - Arquitectura y Componentesomenar
 
Transitioning from SQL to MongoDB
Transitioning from SQL to MongoDBTransitioning from SQL to MongoDB
Transitioning from SQL to MongoDBMongoDB
 
Back to Basics Webinar 1: Introduction to NoSQL
Back to Basics Webinar 1: Introduction to NoSQLBack to Basics Webinar 1: Introduction to NoSQL
Back to Basics Webinar 1: Introduction to NoSQLMongoDB
 

Destacado (12)

Sevilla Mongo Developers Group - MongoDB: Cómo aprendimos que la culpa era nu...
Sevilla Mongo Developers Group - MongoDB: Cómo aprendimos que la culpa era nu...Sevilla Mongo Developers Group - MongoDB: Cómo aprendimos que la culpa era nu...
Sevilla Mongo Developers Group - MongoDB: Cómo aprendimos que la culpa era nu...
 
Gestión de índices en MongoDB
Gestión de índices en MongoDBGestión de índices en MongoDB
Gestión de índices en MongoDB
 
Así que pusiste MongoDB. Dime ¿cómo lo administras?
Así que pusiste MongoDB. Dime ¿cómo lo administras?Así que pusiste MongoDB. Dime ¿cómo lo administras?
Así que pusiste MongoDB. Dime ¿cómo lo administras?
 
Emr hive barcamp 2012
Emr hive   barcamp 2012Emr hive   barcamp 2012
Emr hive barcamp 2012
 
MongoDB - Madrid Devops Febrero
MongoDB - Madrid Devops FebreroMongoDB - Madrid Devops Febrero
MongoDB - Madrid Devops Febrero
 
MongoDB
MongoDBMongoDB
MongoDB
 
Procesamiento masivo de datos en MongoDB
Procesamiento masivo de datos en MongoDBProcesamiento masivo de datos en MongoDB
Procesamiento masivo de datos en MongoDB
 
Mongo db improve the performance of your application codemotion2016
Mongo db improve the performance of your application codemotion2016Mongo db improve the performance of your application codemotion2016
Mongo db improve the performance of your application codemotion2016
 
Postgres como base de datos NoSQL. Codemotion 2015
Postgres como base de datos NoSQL. Codemotion 2015Postgres como base de datos NoSQL. Codemotion 2015
Postgres como base de datos NoSQL. Codemotion 2015
 
mongoDB - Arquitectura y Componentes
mongoDB - Arquitectura y ComponentesmongoDB - Arquitectura y Componentes
mongoDB - Arquitectura y Componentes
 
Transitioning from SQL to MongoDB
Transitioning from SQL to MongoDBTransitioning from SQL to MongoDB
Transitioning from SQL to MongoDB
 
Back to Basics Webinar 1: Introduction to NoSQL
Back to Basics Webinar 1: Introduction to NoSQLBack to Basics Webinar 1: Introduction to NoSQL
Back to Basics Webinar 1: Introduction to NoSQL
 

Similar a MongoDB GDG

Jean piere sarumo mongodb
Jean piere sarumo mongodbJean piere sarumo mongodb
Jean piere sarumo mongodbJean Sarumo
 
Mallorca MUG: Introducción a MongoDB
Mallorca MUG: Introducción a MongoDBMallorca MUG: Introducción a MongoDB
Mallorca MUG: Introducción a MongoDBEmilio Torrens
 
Mondongo, un ODM para PHP y MongoDB
Mondongo, un ODM para PHP y MongoDBMondongo, un ODM para PHP y MongoDB
Mondongo, un ODM para PHP y MongoDBpablodip
 
NOSQL: Primeros Pasos en MongoDB
NOSQL: Primeros Pasos en MongoDBNOSQL: Primeros Pasos en MongoDB
NOSQL: Primeros Pasos en MongoDBVictor Cuervo
 
slides-del-curso-de-analisis-de-datos-con-power-bi_cf66119b-6f4c-4e91-9eab-72...
slides-del-curso-de-analisis-de-datos-con-power-bi_cf66119b-6f4c-4e91-9eab-72...slides-del-curso-de-analisis-de-datos-con-power-bi_cf66119b-6f4c-4e91-9eab-72...
slides-del-curso-de-analisis-de-datos-con-power-bi_cf66119b-6f4c-4e91-9eab-72...SALAZARCOLLASABELANG
 
Ordenacion y busqueda
Ordenacion y busquedaOrdenacion y busqueda
Ordenacion y busquedaIrvingMoran4
 
Curso básico de lenguaje R aplicado a las Ciencias Sociales
Curso básico de lenguaje R aplicado a las Ciencias SocialesCurso básico de lenguaje R aplicado a las Ciencias Sociales
Curso básico de lenguaje R aplicado a las Ciencias SocialesNicolas Robinson-Garcia
 
Servicios de base de datos multimodelo NoSQL con Azure CosmosDB y aplicación...
Servicios de base de datos multimodelo  NoSQL con Azure CosmosDB y aplicación...Servicios de base de datos multimodelo  NoSQL con Azure CosmosDB y aplicación...
Servicios de base de datos multimodelo NoSQL con Azure CosmosDB y aplicación...Daniel Gomez Jaramillo
 
Acceso a datos en aplicaciones web del entorno servidor
Acceso a datos en aplicaciones web del entorno servidorAcceso a datos en aplicaciones web del entorno servidor
Acceso a datos en aplicaciones web del entorno servidorJomicast
 

Similar a MongoDB GDG (20)

Semana 3 MONGODB conceptos básicos NOSQL
Semana 3   MONGODB conceptos básicos NOSQLSemana 3   MONGODB conceptos básicos NOSQL
Semana 3 MONGODB conceptos básicos NOSQL
 
Jean piere sarumo mongodb
Jean piere sarumo mongodbJean piere sarumo mongodb
Jean piere sarumo mongodb
 
Mallorca MUG: Introducción a MongoDB
Mallorca MUG: Introducción a MongoDBMallorca MUG: Introducción a MongoDB
Mallorca MUG: Introducción a MongoDB
 
Mondongo, un ODM para PHP y MongoDB
Mondongo, un ODM para PHP y MongoDBMondongo, un ODM para PHP y MongoDB
Mondongo, un ODM para PHP y MongoDB
 
NOSQL: Primeros Pasos en MongoDB
NOSQL: Primeros Pasos en MongoDBNOSQL: Primeros Pasos en MongoDB
NOSQL: Primeros Pasos en MongoDB
 
slides-del-curso-de-analisis-de-datos-con-power-bi_cf66119b-6f4c-4e91-9eab-72...
slides-del-curso-de-analisis-de-datos-con-power-bi_cf66119b-6f4c-4e91-9eab-72...slides-del-curso-de-analisis-de-datos-con-power-bi_cf66119b-6f4c-4e91-9eab-72...
slides-del-curso-de-analisis-de-datos-con-power-bi_cf66119b-6f4c-4e91-9eab-72...
 
Compu 1
Compu 1Compu 1
Compu 1
 
Ordenacion y busqueda
Ordenacion y busquedaOrdenacion y busqueda
Ordenacion y busqueda
 
Bd oo presentacion
Bd oo presentacionBd oo presentacion
Bd oo presentacion
 
Curso basico c sharp vii
Curso basico c sharp   viiCurso basico c sharp   vii
Curso basico c sharp vii
 
MongoDB
MongoDBMongoDB
MongoDB
 
Visualfoxpro
VisualfoxproVisualfoxpro
Visualfoxpro
 
Mongo DB
Mongo DBMongo DB
Mongo DB
 
Presentación Base de Datos Slideshare
Presentación Base de Datos Slideshare Presentación Base de Datos Slideshare
Presentación Base de Datos Slideshare
 
Curso básico de lenguaje R aplicado a las Ciencias Sociales
Curso básico de lenguaje R aplicado a las Ciencias SocialesCurso básico de lenguaje R aplicado a las Ciencias Sociales
Curso básico de lenguaje R aplicado a las Ciencias Sociales
 
Diapositva
DiapositvaDiapositva
Diapositva
 
Mongo db
Mongo dbMongo db
Mongo db
 
Mongo db
Mongo dbMongo db
Mongo db
 
Servicios de base de datos multimodelo NoSQL con Azure CosmosDB y aplicación...
Servicios de base de datos multimodelo  NoSQL con Azure CosmosDB y aplicación...Servicios de base de datos multimodelo  NoSQL con Azure CosmosDB y aplicación...
Servicios de base de datos multimodelo NoSQL con Azure CosmosDB y aplicación...
 
Acceso a datos en aplicaciones web del entorno servidor
Acceso a datos en aplicaciones web del entorno servidorAcceso a datos en aplicaciones web del entorno servidor
Acceso a datos en aplicaciones web del entorno servidor
 

Último

CLASE - 01 de construcción 1 ingeniería civil
CLASE - 01 de construcción 1 ingeniería civilCLASE - 01 de construcción 1 ingeniería civil
CLASE - 01 de construcción 1 ingeniería civilDissneredwinPaivahua
 
aCARGA y FUERZA UNI 19 marzo 2024-22.ppt
aCARGA y FUERZA UNI 19 marzo 2024-22.pptaCARGA y FUERZA UNI 19 marzo 2024-22.ppt
aCARGA y FUERZA UNI 19 marzo 2024-22.pptCRISTOFERSERGIOCANAL
 
ECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdfECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdffredyflores58
 
Calavera calculo de estructuras de cimentacion.pdf
Calavera calculo de estructuras de cimentacion.pdfCalavera calculo de estructuras de cimentacion.pdf
Calavera calculo de estructuras de cimentacion.pdfyoseka196
 
ECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdfECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdfmatepura
 
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptxguillermosantana15
 
Proyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctricaProyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctricaXjoseantonio01jossed
 
Una estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NISTUna estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NISTFundación YOD YOD
 
Propositos del comportamiento de fases y aplicaciones
Propositos del comportamiento de fases y aplicacionesPropositos del comportamiento de fases y aplicaciones
Propositos del comportamiento de fases y aplicaciones025ca20
 
clases de dinamica ejercicios preuniversitarios.pdf
clases de dinamica ejercicios preuniversitarios.pdfclases de dinamica ejercicios preuniversitarios.pdf
clases de dinamica ejercicios preuniversitarios.pdfDanielaVelasquez553560
 
Residente de obra y sus funciones que realiza .pdf
Residente de obra y sus funciones que realiza  .pdfResidente de obra y sus funciones que realiza  .pdf
Residente de obra y sus funciones que realiza .pdfevin1703e
 
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptxPPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptxSergioGJimenezMorean
 
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.pptARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.pptMarianoSanchez70
 
Elaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdfElaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdfKEVINYOICIAQUINOSORI
 
presentacion medidas de seguridad riesgo eléctrico
presentacion medidas de seguridad riesgo eléctricopresentacion medidas de seguridad riesgo eléctrico
presentacion medidas de seguridad riesgo eléctricoalexcala5
 
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESAIPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESAJAMESDIAZ55
 
Comite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxComite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxClaudiaPerez86192
 
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptx
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptxProcesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptx
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptxJuanPablo452634
 
Magnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMagnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMarceloQuisbert6
 
Presentación electricidad y magnetismo.pptx
Presentación electricidad y magnetismo.pptxPresentación electricidad y magnetismo.pptx
Presentación electricidad y magnetismo.pptxYajairaMartinez30
 

Último (20)

CLASE - 01 de construcción 1 ingeniería civil
CLASE - 01 de construcción 1 ingeniería civilCLASE - 01 de construcción 1 ingeniería civil
CLASE - 01 de construcción 1 ingeniería civil
 
aCARGA y FUERZA UNI 19 marzo 2024-22.ppt
aCARGA y FUERZA UNI 19 marzo 2024-22.pptaCARGA y FUERZA UNI 19 marzo 2024-22.ppt
aCARGA y FUERZA UNI 19 marzo 2024-22.ppt
 
ECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdfECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdf
 
Calavera calculo de estructuras de cimentacion.pdf
Calavera calculo de estructuras de cimentacion.pdfCalavera calculo de estructuras de cimentacion.pdf
Calavera calculo de estructuras de cimentacion.pdf
 
ECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdfECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdf
 
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx
 
Proyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctricaProyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctrica
 
Una estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NISTUna estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NIST
 
Propositos del comportamiento de fases y aplicaciones
Propositos del comportamiento de fases y aplicacionesPropositos del comportamiento de fases y aplicaciones
Propositos del comportamiento de fases y aplicaciones
 
clases de dinamica ejercicios preuniversitarios.pdf
clases de dinamica ejercicios preuniversitarios.pdfclases de dinamica ejercicios preuniversitarios.pdf
clases de dinamica ejercicios preuniversitarios.pdf
 
Residente de obra y sus funciones que realiza .pdf
Residente de obra y sus funciones que realiza  .pdfResidente de obra y sus funciones que realiza  .pdf
Residente de obra y sus funciones que realiza .pdf
 
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptxPPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
 
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.pptARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
 
Elaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdfElaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdf
 
presentacion medidas de seguridad riesgo eléctrico
presentacion medidas de seguridad riesgo eléctricopresentacion medidas de seguridad riesgo eléctrico
presentacion medidas de seguridad riesgo eléctrico
 
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESAIPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
 
Comite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxComite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptx
 
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptx
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptxProcesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptx
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptx
 
Magnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMagnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principios
 
Presentación electricidad y magnetismo.pptx
Presentación electricidad y magnetismo.pptxPresentación electricidad y magnetismo.pptx
Presentación electricidad y magnetismo.pptx
 

MongoDB GDG

  • 2. Quien soy ● David Luque Quintana ● Graduado en Ing. Informática ● GDG Córdoba ● Desarrollador MEAN ● Iternox Semper
  • 3. ¿Que es MongoDB? ● Base de datos no relacional (noSQL) ● Orientada a documentos (JSON) ● Fácil de entender ● Sintaxis simple y clara
  • 4. ¿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.
  • 5. ¿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
  • 6. ¿Qué es JSON? Acrónimo de JavaScript Object Notation. Son documentos que guardan datos en notación de JavaScript
  • 7. ¿Qué es JSON? Para quien sepa Python, son muy parecidos a los diccionarios. Son documentos de tipo “clave : valor” { nombre : David, ciudad : Cordoba }
  • 8. 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
  • 9. 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.
  • 12. Primer contacto Abrir terminal: mongo Elegir base de datos
  • 13. 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
  • 14. 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
  • 15. 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
  • 16. CRUD Create - Read - Update - Delete
  • 17. Create Sólo tenemos una función para insertar documentos en MongoDB
  • 18. 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.
  • 19. Read - find() Con find() extraemos todos los documentos de la colección
  • 20. Read - find() Si queremos ver los resultados más vistosos usamos pretty()
  • 21. Read - filtros Una vez que tengamos muchos documentos, podemos filtrar introduciendo un campo en el find
  • 22. Read - filtros Con un segundo argumento en find() podemos pedir que nos retorne o no los campos
  • 23. Read - operadores Normalmente no trabajamos con valores constantes y debemos usar operadores (mayor que, menor que…)
  • 24. Read - operadores Podemos comprobar si un campo existe $exists O si el campo es una cadena (especificación de BSON) $type
  • 25. Read - operadores Si necesitas usar expresiones regulares → libpcre → $regex
  • 28. 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
  • 29. 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
  • 30. Update Para añadir nuevos campos a un documento usamos el operador $set
  • 31. Update Si queremos borrar un atributo lo elegimos con $unset y le damos valor 1
  • 32. Update Operaciones con el operador “.” Podemos ir encadenando subdocumentos y accediendo con el operador “.”
  • 33. Update Podemos usar los arrays como si fuesen colas Con $push introducimos por la cola
  • 34. 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
  • 35. 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
  • 36. Delete Usamos para borrar el método remove(). Básicamente funciona como find(). Si no ponemos argumento borra todos los elementos.
  • 37. Delete - drop() ● Computacionalmente más eficiente ● Borra los índices
  • 39. ¿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.
  • 40. ¿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 } )
  • 41. Creación de índices ● Orden ascendente ○ db.coleccion.ensureIndex( { nombre : 1 } ). ● Orden descendente. ○ db.coleccion.ensureIndex( { nombre : -1 } ).