SlideShare una empresa de Scribd logo
1 de 160
Descargar para leer sin conexión
MondonGO
¿Qué es MondonGO?
“Mondongo es a los ODMs lo que MongoDB a las
bases de datos.”
¿Ein?
“Mondongo es a los ODMs lo que MongoDB a las
bases de datos.”
¿Qué es ?
“MongoDB es una base de datos escalable, de alto
rendimiento, de código abierto y orientada a
documentos.”
Terminología
Base de Datos = Base de Datos
Base de Datos = Base de Datos
Tabla = Colección
Base de Datos = Base de Datos
Tabla = Colección
Registro ~ Documento
Documentos
JSON
Embebidos
Sin Esquema
Cada documento puede tener distinta estructura
No hay tipos
Drivers
en
Conectar con Mongo
Seleccionar bases de datos
Seleccionar colecciones
Las bases de datos y las colecciones se crean
automáticamente si no existen
Los documentos son simplemente arrays
Insertar documentos
Actualizar documentos
Consultar documentos
¿Qué es un ODM?
ODM == Object Document Mapper
“Un ODM es una herramienta que mapea la
estructura de bases de datos a objetos”
¿Qué es MondonGO?
“Mondongo es un sencillo, potente y ultrarápido
ODM para PHP y MongoDB.”
Sencillo
Fácil de usar
Potente
MondonGO es increíblemente flexible gracias a
Mondator
Puede usarse para cualquier tipo y tamaño de
proyecto
Ultrarápido
Ha sido diseñado para ser extremadamente
ligero
Es el mapeador más rápido en PHP actualmente
¿Qué es Mondator?
“Mondator es un generador de clases para PHP.”
Mondongo usa Mondator para generar las clases
de documentos y repositorios
Iniciar un mondator
Las configuraciones de clases contienen la
información de las clases que deben generarse
Asignar configuraciones de clases
Asignar configuraciones de clases
Las extensiones determinan qué clases se
generarán y dónde a partir de las
configuraciones de clases
Asignar extensiones
Asignar extensiones
Procesar el mondator
Mondongo genera cuatro clases por cada
configuración de clase
Las clases Base no deben editarse, se
sobreescriben cada vez que se procesa el mondator
Documentos MondonGO
Los documentos Mondongo se mapean en las
configuraciones de clases de Mondator
Campos
Son los datos de los documentos
Tipos MondonGO
● array
● bin_data
● boolean
● date
● float
● integer
● raw
● reference_one
● reference_many
● string
Se usan setters y getters para trabajar con los
datos de los documentos
Referencias
Las referencias son relaciones hacia otros
documentos
Referencias a uno
Referencias a varios
Embebidos
Los embebidos son documentos dentro de
otros documentos
Se usan igual que las referencias
Guardar
Mondongo genera la inserción o actualización
óptima de los campos modificados
Borrar
Configurar MondonGO
Iniciar un mondongo
Asignar conexiones al mondongo
Las conexiones son perezosas
Repositorios MondonGO
Los repositorios realizan funciones generales
sobre clases de documentos
Se obtienen mediante el mondongo
Consultas MondonGO
Se realizan mediante los repositorios
Consultar documentos
Consultar documentos con opciones
Consultar documentos agrupando opciones
La sintaxis de las opciones Mondongo es la
misma que la sintaxis Mongo
Consultar un documento
Consultar un documento por ID
Contar documentos
Borrar documentos
Eventos MondonGO
Mondongo proporciona varios hooks en los
documentos, que se lanzan antes y después de
ciertas acciones
● preSave
●
postSave
● preInsert
● postInsert
●
preUpdate
● postUpdate
●
preDelete
● postDelete
Extensiones MondonGO
Las extensiones Mondongo son extensiones Mondator
Las extensiones Mondongo permiten personalizar
muchísimo Mondongo
¿Quieres usar los documentos como arrays?
¿Quieres usar los documentos por sobrecarga?
¿Quieres importar y exportar datos con arrays?
Extensiones Independientes
Mondongo
Se definen en las configuraciones de clases
¿Quieres guardar fechas de creación y actualización
en algún documento?
¿Quieres guardar el slug de algún campo en algún
documento?
¿Qué puedes hacer con extensiones independientes
Mondongo?
● Modificar campos, referencias, embebidos
● Añadir
● Editar
● Borrar
● Añadir propiedades y métodos a documentos y
repositorios
● Añadir eventos a documentos
● …
Extensiones Independientes Mondongo
por defecto
¿Quieres guardar fechas de creación y actualización
en todos los documentos?
Más mondongadas...
Mondongo permite manejar fácilmente los
índices de las colecciones
Mondongo permite guardar ficheros mediante
GridFS
Mondongo permite loguear las consultas de la
base de datos para optimizar el desarrollo
Mondongo usa batchInsert para insertar
documentos de manera eficiente
Mondongo usa operaciones atómicas para
actualizar y borrar documentos eficientemente
Al usar clases generadas, y con PHPDoc,
podrás usar el autocompletado de tu editor
IDE
Mondongo está completamente testeado con
pruebas automáticas con PHPUnit
¿Por qué un ODM con MongoDB?
Un ODM acelera y simplifica muchísimo el
desarrollo y mantenimiento de las aplicaciones
Los ODMs tienen una desventaja:
el rendimiento
¿Es MondonGO realmente
ultrarápido ?
Vamos a ver unas pruebas comparando Mondongo con
Mongo directamente y con otros dos ODMs:
ActiveMongo y DoctrineMongo
Insertando
Consultando por ID
Hydratando
Resumiendo...
Y además...
sfMondongoPlugin
Integración con symfony
MondongoBundle
Integración con Symfony2
Conclusiones
● Mongo es sinónimo de alto rendimiento
Conclusiones
● Mongo es sinónimo de alto rendimiento
● Un ODM acelera y simplifica el desarrollo y
mantenimiento de las aplicaciones
Conclusiones
● Mongo es sinónimo de alto rendimiento
● Un ODM acelera y simplifica el desarrollo y
mantenimiento de las aplicaciones
● Mondongo es el mejor aliado para exprimir
hasta la última gota de MongoDB en PHP
Conclusiones
● Mongo es sinónimo de alto rendimiento
● Un ODM acelera y simplifica el desarrollo y
mantenimiento de las aplicaciones
● Mondongo es el mejor aliado para exprimir
hasta la última gota de MongoDB en PHP
● Las extensiones Mondator enlarguis your...
¡mondongo!
¿Preguntas?
http://mondongo.es
pablodip@gmail.com
http://twitter.com/pablodip
http://github.com/pablodip
¿Te gusta Mondongo?
* Úsalo
* Dalo a conocer
* Blog
* Twitter #mndgo

Más contenido relacionado

Destacado

Database version control without pain - the PHP Barcelona version
Database version control without pain - the PHP Barcelona versionDatabase version control without pain - the PHP Barcelona version
Database version control without pain - the PHP Barcelona versionHarrie Verveer
 
Características MONGO DB
Características MONGO DBCaracterísticas MONGO DB
Características MONGO DBmaxfontana90
 
Zend PHP 5.3 Demo Certification Test
Zend PHP 5.3 Demo Certification TestZend PHP 5.3 Demo Certification Test
Zend PHP 5.3 Demo Certification TestCarlos Buenosvinos
 
Design patterns revisited with PHP 5.3
Design patterns revisited with PHP 5.3Design patterns revisited with PHP 5.3
Design patterns revisited with PHP 5.3Fabien Potencier
 
Scaling with MongoDB
Scaling with MongoDBScaling with MongoDB
Scaling with MongoDBRick Copeland
 

Destacado (9)

Database version control without pain - the PHP Barcelona version
Database version control without pain - the PHP Barcelona versionDatabase version control without pain - the PHP Barcelona version
Database version control without pain - the PHP Barcelona version
 
Características MONGO DB
Características MONGO DBCaracterísticas MONGO DB
Características MONGO DB
 
MongoDB: la BBDD NoSQL más popular del mercado
MongoDB: la BBDD NoSQL más popular del mercadoMongoDB: la BBDD NoSQL más popular del mercado
MongoDB: la BBDD NoSQL más popular del mercado
 
CouchDB Vs MongoDB
CouchDB Vs MongoDBCouchDB Vs MongoDB
CouchDB Vs MongoDB
 
Mongodb vs couchdb
Mongodb vs couchdb Mongodb vs couchdb
Mongodb vs couchdb
 
Zend PHP 5.3 Demo Certification Test
Zend PHP 5.3 Demo Certification TestZend PHP 5.3 Demo Certification Test
Zend PHP 5.3 Demo Certification Test
 
Design patterns revisited with PHP 5.3
Design patterns revisited with PHP 5.3Design patterns revisited with PHP 5.3
Design patterns revisited with PHP 5.3
 
Bases de Datos No Relacionales (NoSQL): Cassandra, CouchDB, MongoDB y Neo4j
Bases de Datos No Relacionales (NoSQL): Cassandra, CouchDB, MongoDB y Neo4jBases de Datos No Relacionales (NoSQL): Cassandra, CouchDB, MongoDB y Neo4j
Bases de Datos No Relacionales (NoSQL): Cassandra, CouchDB, MongoDB y Neo4j
 
Scaling with MongoDB
Scaling with MongoDBScaling with MongoDB
Scaling with MongoDB
 

Similar a MondonGO: el ODM ultrarrápido para MongoDB en PHP

Similar a MondonGO: el ODM ultrarrápido para MongoDB en PHP (20)

Mongo db
Mongo dbMongo db
Mongo db
 
MongoDB GDG
MongoDB GDGMongoDB GDG
MongoDB GDG
 
Mongo db
Mongo dbMongo db
Mongo db
 
Investigación de sobre los conceptos que se deben de tratar en Mongo DB
Investigación de sobre los conceptos que se deben de tratar en Mongo DBInvestigación de sobre los conceptos que se deben de tratar en Mongo DB
Investigación de sobre los conceptos que se deben de tratar en Mongo DB
 
Mongo db
Mongo dbMongo db
Mongo db
 
Mongo db
Mongo dbMongo db
Mongo db
 
Sgbd mongodb
Sgbd   mongodbSgbd   mongodb
Sgbd mongodb
 
Diapositva
DiapositvaDiapositva
Diapositva
 
MEAN Stack
MEAN StackMEAN Stack
MEAN Stack
 
Mallorca MUG: Introducción a MongoDB
Mallorca MUG: Introducción a MongoDBMallorca MUG: Introducción a MongoDB
Mallorca MUG: Introducción a MongoDB
 
Introduccón a Mongodb
Introduccón a MongodbIntroduccón a Mongodb
Introduccón a Mongodb
 
Mongo db
Mongo dbMongo db
Mongo db
 
MongoDB
MongoDBMongoDB
MongoDB
 
Que es MongoDB
Que es MongoDBQue es MongoDB
Que es MongoDB
 
Lunch & Learn: El poder de las NoSQL con mongoDB
Lunch & Learn:  El poder de las NoSQL con mongoDBLunch & Learn:  El poder de las NoSQL con mongoDB
Lunch & Learn: El poder de las NoSQL con mongoDB
 
mongodb.base de datis noo relacionles fr
mongodb.base de datis noo relacionles frmongodb.base de datis noo relacionles fr
mongodb.base de datis noo relacionles fr
 
Seminario web: Simplificando el uso de su base de datos con Atlas
Seminario web: Simplificando el uso de su base de datos con AtlasSeminario web: Simplificando el uso de su base de datos con Atlas
Seminario web: Simplificando el uso de su base de datos con Atlas
 
¿que es mongodb?
¿que es mongodb?¿que es mongodb?
¿que es mongodb?
 
MongoDB y Symfony
MongoDB y SymfonyMongoDB y Symfony
MongoDB y Symfony
 
Mongo bd michael landeo vargas
Mongo bd michael landeo vargasMongo bd michael landeo vargas
Mongo bd michael landeo vargas
 

Último

El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxJOSEMANUELHERNANDEZH11
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxAlexander López
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptJavierHerrera662252
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxMariaBurgos55
 
Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..RobertoGumucio2
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxJOSEFERNANDOARENASCA
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaarkananubis
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxAlexander López
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMidwarHenryLOZAFLORE
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 

Último (20)

El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptx
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptx
 
Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptx
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en mina
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptx
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 

MondonGO: el ODM ultrarrápido para MongoDB en PHP