Curso en Legacy (No tendrá más actualizaciones)
MongoDB es una base de datos NoSQL de alto rendimiento y escalable. A diferencia de las bases de datos relacionales , en MongoDB los datos se almacenan en documentos JSON, los cuales se pueden anidar. Gracias a los JSONs podemos tener un esquema flexibilidad para anidar y modelar los datos.
MongoDB es compatible con muchas herramientas, lo cual es ideal ya que, podemos usarlo junto con nuestros desarrollos; por ejemplo, podemos usarlo con lenguajes de programación como PHP, Python, Java y Node.js.
Gracias a la integración con PHP, podemos usarlo en un proyecto en Laravel.
En resumen , MongoDB es una poderosa base de datos NoSQL, que ofrece una gran flexibilidad en el modelado de los datos y características de alta disponibilidad y escalabilidad.
De Laravel no voy a hablarte mucho, ya que, si estas tomando este curso, significa que ya tienes conocimientos en Laravel al menos de manera básica; Laravel es un exelente framework con el cual podemos desarrollar todo tipo de proyectos webs; tenemos funcionalidades que nos facilitan mucho la vida con la integración de otras tecnologías facilmente, como por ejemplo Stripe.
Usar Laravel y MongoDB, es posible gracias a que existe un conector de PHP para la mencionada base de datos NoSQL; de esta manera, se tiene una interfaz para interactuar con MongoDB en Laravel. Además, se puede usar Eloquent para modelar y realizar consultas a las colecciones de MongoDB; para esto, existe un paquete para Laravel que es el que usamos en el curso; gracias a este paquete, se puede realizar consultas a la colección de MongoDB usando la sintaxis de consulta de Eloquent de manera directa; así que, en buena medida la integración de Laravel y MongoDB es transparente.
En resumen, trabajar con Laravel y MongoDB implica configurar la conexión a la base de datos, crear modelos para las colecciones, y realizar consultas utilizando la sintaxis de consulta de Eloquent o de MongoDB; todas estas operaciones las vemos en el curso en detalle, mostrando como realizar los procesos CRUDs adaptados a MongoDB.
A la final, la integración de Mongo en Laravel consiste en dotar a Eloquent de poder aceptar las consultas, realizarlas en Mongo y poder convertirlas a objetos y arrays en PHP.
En el curso vamos a preparar primero el ecosistema de MongoDB y su integración con Laravel (vamos a emplear un entorno Windows con Laragon pero perfectamente puedes emplear otro Sistema Operativo).
Además de varios desarrollos interesantes que se irán agregando al curso y para eso siéntete libre de ver las introducciones a cada sección del curso para saber exactamente qué es lo que vamos a hacer.
Por lo tanto, esto es un curso básico, -en el cual tienes que tener conocimiento en Laravel- en el cual aprenderemos a integrar MongoDB con Laravel y poder emplear la totalidad del framework y sus funcionalidades básicas con este motor de base de datos NoSQL
Recuerda que puedes ver las introducciones de todas las secciones de manera gratuita aquí en Udemy, para que sepas exactamente qué vamos a abordar en cada sección.
Para tomar este curso es fundamental que tienes que conocer cómo desarrollar tus aplicaciones en Laravel, ya que todo el desarrollo que iremos haciendo desde este framework NO será de caracteres introductivo y no nos pararemos demasiado en explicar elementos o funcionalidades que son básicas del framework, ya que el objetivo del curso es aprender más que las bases en MongoDB y cómo podemos emplear todo esto mediante Laravel y por supuesto emplear dicha conección de la manera más eficiente.
- Este curso tiene el objetivo de enseñar los elemento básicos y no tan básicos de MongoDB; conoceremos su estructura o cómo está compuesto el mismo, como preparar todo el entorno, instalar el mismo y por supuesto realizar nuestras primeras consultas CRUD con MongoDB; aprenderemos el mismo tomando como base el esquema relacional -por ejemplo- con MySQL.
- El curso es progresivo, iremos de a poco, aprendiendo los elementos básicos en MongoDB mediante el cliente que podemos ejecutar mediante la terminal y replicando lo aprendido con MongoDB y su cliente en el ambiente Laravel; iremos creando en el proceso una pequeña aplicación funcional tipo CRUD e iremos agregando desarrollos y funcionalidades interesantes en cuando su implementación que correspondan con los visto con anterioridad nativamente en MongoDB
Por aquí tienes el listado completo de clases que vamos a cubrir en el libro y curso:
Para tomar el curso necesitas tener conocimientos básicos en Flask y Django y las dependencias de estos, es decir, conocer las tecnologías web del lado del cliente como CSS, JavaScript, HTML, etc; recuerda que cuento con cursos para estos framework tanto para Flask básico como para Django; todos con muchísimas horas de contenido en los cuales abordamos todos tipos de tema.
Vamos a instalar MongoDB en Windows empleando Laragon.
Vamos a agregar el DLL para PHP para poder emplear MongoDB con PHP.
Vamos a aprender a variar una versión de mongoDB a otra versión.
Vamos a instalar MongoDB en MacOS.
Vamos a agregar el DLL para PHP para poder emplear MongoDB con PHP.
Vamos a agregar la dependencia en Laravel para poder trabajar con MongoDB.
Opcional: Instalar MongoDB en Windows (Sin Laragon)
Vamos a hablar sobre algunos parámetros que tienes que tener en cuenta para poder seguir en esta sección.
Vamos a aprender algunos conceptos básicos para trabajar con MongoDB.
Vamos a trabajar con las colecciones/tablas en MongoDB.
Vamos a conocer cómo podemos insertar documentos en MongoDB.
Vamos a conocer cómo podemos buscar documentos en MongoDB.
Generación del ID
Vamos a conocer como podemos insertar documentos en MongoDB y personalizar algunas opciones.
Vamos a conocer cómo podemos actualizar documentos en MongoDB.
Vamos a conocer cómo podemos eliminar documentos en MongoDB.
Consultas CRUD a realizar
Vamos a conocer como podemos emplear los operadores lógicos y de comparación en MongoDB.
Código Fuente
Vamos a preparar nuestro entorno virtual para desarrollar nuestra aplicación en Django.
Vamos a instalar el conector de MongoDB para Django.
Vamos a crear el proyecto en Django y la aplicación que vamos a emplear inicialmente.
Vamos a crear las migraciones y ejecutarlas en nuestra base de datos, además vamos a crear el superadmin.
Vamos a crear el modelo de pruebas llamado Book.
Vamos a arrancar la aplicación y hacer algunas pruebas para evidenciar cómo va funcionando.
Vamos a hacer algunas modificaciones en el modelo Book para evitar guardar la columna Id.
Vamos a cambiar la importación del modelo del de Django al de Djongo.
Vamos a hacer una demostración de lo importante que es ejecutar las migraciones inicialmente para nuestro Djongo.
Vamos a conocer como podemos ocultar los errores en VSC.
Vamos a crear la función en Django para obtener el listado de libros de la base de datos MongoDB.
Vamos a crear la página o template para el listado.
Vamos a instalar Bootstrap 5 como framework web.
Vamos a crear la página maestra o base para nuestra app de libros.
Vamos a crear los enlaces para paginar los libros.
Vamos a crear la clase base de un formulario base para crear los libros.
Vamos a crear un modal en Bootstrap 5 para desplegar el form anterior.
Vamos a darle estilo personalizado al formulario mediante el método init de la clase form.
Vamos a crear la función para guardar libros en la views de Django.
Vamos a terminar unos detalles en la función para crear un libro.
Vamos a mostrar los errores del formulario de manera individual.
Vamos a crear la función en el views para editar un libro.
Vamos a realizar algunas modificaciones en el template para que podamos emplear la opción de edición del libro.
Vamos a mostrar el formulario de manera automática cuando el mismo presenta errores desde el servidor.
Vamos a crear una función json para mostrar el detalle de un libro por el _id del mismo.
Vamos a consumir la función anterior vía un fetch para consumir el detalle de un libro y mostrarlos al momento de editar.
Vamos a limpiar los campos de formulario cuando vamos a la opción de crear.
Vamos a crear la funcionalidad completa para eliminar un libro, la función en el views, modal y accionante.
Vamos a instalar nuestra iconografía y establecerla en algunas partes de nuestra interfaz.
Vamos a variar el título del modal según si estamos en edición o creación.
Vamos a arreglar un pequeño problema que tenemos cuando regresamos a la vista desde la opción de edición.
https://github.com/libredesarrollo/codigo_mongo_flask_django/blob/main/djangomongo_6.zip
Vamos a realizar algunas consultas de búsqueda con los operadores de comparación y lógicos que vimos anteriormente.
Vamos a aprender a actualizar un documento dentro de otro documento ya sea de tipo array o simple.
Vamos a aprender a eliminar un documento dentro de otro documento de tipo array.
Vamos a aprender a agregar un documento dentro de otro documento de tipo array.
Código Fuente https://github.com/libredesarrollo/codigo_mongo_flask_django/blob/main/laramongo_7.zip
Vamos a crear otra relación para asociar con la de libros mediante una relación de tipo documento referencial.
Vamos a hacer algunas pruebas para trabajar con la relación Node tipo documento referencial.
Vamos a crear el nuevo campo en nuestro formulario.
Vamos a explicar algunos inconvenientes que tenemos en el enfoque relacional en Djongo.
Vamos a hacer unas reutilizaciones a nivel de código para las clases.
Vamos a crear otro tipo de relación en esta oportunidad una relación de uno a uno de tipo documento embebido.
Vamos a realizar una sencilla demostración para la relación de tipo documento embebido.
Vamos a crear un formulario base para ahorrarnos unas líneas de código para el modelo.
Vamos a manejar la relación de tipo muchos a muchos.
Vamos a conocer algunos problemas que tenemos actualmente con los formularios y los cambios embebidos.
Vamos a precargar los datos en el formulario al momento de la edición.
Vamos a crear un proceso para aplicar reglas de validación sobre un campo del libro.
Vamos terminar el proceso de validación del formulario.
Vamos a crear el proceso de gestión para las dimensiones.
Vamos a crear el proceso de gestión para las direcciones.
Vamos a realizar el proceso de guardado para las etiquetas.
Vamos a mostrar los errores del formulario.
https://github.com/libredesarrollo/codigo_mongo_flask_django/blob/main/djangomongo_8.zip https://github.com/libredesarrollo/codigo_mongo_flask_django/blob/main/requirements_8.txt
Vamos a crear una nueva aplicación en nuestro proyecto en Django.
Vamos a instalar nuestro DRF para la creación de la RestApi.
Vamos a crear la Rest CRUD para los libros.
Vamos a instalar al manejador de la RestApi para Djongo.
Vamos a corregir algunos problemas que vamos a tener cuando hagamos una desactualización del conector de MongoDB.
Posibles problemas con la versión anterior de Djongo
Vamos a probar la RestApi que tenemos actualmente.
Vamos a crear el proceso para actualizar un libro.
Vamos a crear un recurso Rest para crear etiquetas.
Vamos a crear el recurso Rest para eliminar etiquetas.
Vamos a crear el recurso Rest para agregar direcciones.
Vamos a crear el recurso Rest para remover una dirección por la posición.
Vamos a crear el CRUD para las etiquetas y categorías.
Resolución tarea
https://github.com/libredesarrollo/codigo_mongo_flask_django/blob/main/djangomongo_9.zip
Vamos a crear un backend personalizado para realizar el login con Django y MongoDB.
Vamos a crear la autenticación por tokens en DRF.
Vamos a crear la autenticación vía JWT en la Rest Api con DRF.
Vamos a instalar Vue 3 mediante la NPM.
Vamos a crear un proyecto en Vue.
Vamos a instalar configurar B5 con NPM.
Vamos a instalar axios para realizar peticiones http.
Vamos a configurar los CORS en nuestro proyecto en Django.
Vamos a configurar los CORS en nuestro proyecto en Django.
Vamos a crear un listado de libros inicial.
Vamos a instalar nuestro FontAwesome para representar nuestros iconos.
Vamos a terminar el diseño para nuestro listado.
Vamos a terminar el diseño de los formularios para la dirección.
Vamos a hacer el proceso para actualizar una dirección via axios.
Vamos a crear el proceso para eliminar una dirección.
Vamos a crear el efecto de eliminación mediante CSS.
Vamos a crear el listado inicial de los tags.
Vamos a crear el proceso para asignar un tag a un libro.
Vamos a crear el proceso de listado de etiquetas que tiene asignado un libro.
Vamos a eliminar una etiqueta de un libro.
Vamos a hacer un refresco de las etiquetas de un libro al momento de asignar una a un libro.
Vamos a hacer un refresco de las etiquetas de un libro al momento de eliminar una de un libro.
Vamos a hacer un bloqueo o deshabilitación de los campos de formulario para las direcciones.
Vamos a crear una dirección a un libro.
Vamos a crear crear el proceso de actualización del listado principal de los libros al momento de registrar una dirección.
Vamos a crear unos botones flotantes.
Vamos a crear un componente de Modal.
Vamos a crear el proceso de creación de las categorías y etiquetas.
Vamos a mostrar errores del formulario.
Vamos a actualizar el listado de etiquetas al momento de crear una nueva.
Tarea: Crear componente de categoría
Resolución tarea
Vamos a crear el espacio virtual para nuestro proyecto en Flask.
Vamos a instalar las dependencias necesarias para avanzar en nuestro proyecto.
Vamos a crear la estructura de nuestra app.
Vamos a crear un Hola Mundo en Flask.
Vamos a crear nuestro modelo de book.
Vamos a hacer las primeras pruebas con MongoDB y Flask y vamos a crear un libro.
Vamos a obtener el detalle de un libro.
Vamos a conocer una función que nos permitirá, dado un ID incorrecto, devolver la página de 404; también conocer la función de get.
Vamos a eliminar un libro de la base de datos de diversas formas.
Vamos a actualizar un documento
Vamos a crear la función que vamos a emplear para mostrar el listado de libros.
Vamos a crear el template maestro de nuestra app.
Vamos a crear la vista paginada.
Vamos a instalar Bootstrap 5 como framework web.
Vamos a adaptar el diseño de Bootstrap 5 a nuestro listado.
Vamos a crear enlaces de navegación.
Vamos a crear todo el proceso para guardar nuestros libros en una base de datos.
Vamos a instalar nuestra iconografía y establecerla en algunas partes de nuestra interfaz.
Vamos a crear un modal en Bootstrap 5 para desplegar el form anterior.
Vamos a terminar unos detalles para que el proceso de creación funcione de manera correcta al momento de creación.
Vamos a mostrar los errores del formulario
Vamos a crear los enlaces para realizar algunas operaciones CRUD.
Vamos a crear la función json para obtener el detalle de un libro.
Vamos a variar la URL del formulario del modal según si estamos en edición o creación.
Vamos a mostrar los datos del libro que estamos editando en el modal.
Vamos a completar la función para actualizar un libro.
Vamos a mostrar el modal al momento de que ocurra un error en el form.
Vamos a personalizar el modal según si estamos en fase de creación o actualización.
Vamos a crear el proceso de eliminar un libro con diálogo de confirmación.
https://github.com/libredesarrollo/codigo_mongo_flask_django/blob/main/mongoflask_12.zip
Vamos a crear otra relación para asociar con la de libros mediante una relación de tipo documento referencial.
Vamos a hacer algunas pruebas para trabajar con la relación Node tipo documento referencial.
Vamos a crear el nuevo campo en nuestro formulario.
Vamos a crear otro tipo de relación en esta oportunidad una relación de uno a uno de tipo documento embebido.
Vamos a realizar una sencilla demostración para la relación de tipo documento embebido.
Vamos a crear un formulario base para ahorrarnos unas líneas de código para el modelo.
Vamos a conocer otro tipo de relación, de tipo array o de uno a muchos y de documento embebido.
Vamos a hacer unas pruebas para operar con los documentos embebidos de tipo array para las direcciones.
Vamos a crear un formulario para las direcciones.
Vamos a manejar la relación de tipo muchos a muchos.
Vamos a realizar una demostración con las relaciones de muchos a muchos.
Vamos a definir los campos de etiquetas en el form base y función de establecer los datos del libro.
Vamos a precargar los datos en el formulario al momento de la edición.
Resolución tarea: Selección múltiple tags
https://github.com/libredesarrollo/codigo_mongo_flask_django/blob/main/mongoflask_13.zip
Vamos a instalar Flask RestFul para crear la RestApi.
Vamos a crear un recurso para obtener todos los libros.
Vamos a crear un recurso para obtener el detalle de un libro por el id.
Vamos a emplear la función de agregación en conjunto con nuestro Flask RestFul para obtener el detalle de la categoría.
Vamos a emplear la función de agregación en conjunto con nuestro Flask RestFul para obtener el detalle del tag.
Vamos a mostrar el detalle de las direcciones y dimensiones.
Vamos a mover las definición de los campos o estructura de nuestro modelo de libros.
Vamos a aplicar los cambios que hicimos anteriormente para el detalle del libro.
Vamos a crear el recurso rest para crear un libro.
Vas a crear el recurso rest para actualizar un libro.
Vas a crear el recurso rest para eliminar un libro.
Vamos a crear el proceso para actualizar un libro.
Vamos a crear un recurso Rest para crear etiquetas.
Vamos a crear el recurso Rest para eliminar etiquetas.
Vamos a crear el recurso Rest para agregar y remover direcciones.
Tarea: Rest CRUD para Tags y Categorías
Resolución tarea
https://github.com/libredesarrollo/codigo_mongo_flask_django/blob/main/mongoflask_14.zip https://github.com/libredesarrollo/codigo_mongo_flask_django/blob/main/requirement_14.txt
Vamos a explicar que es lo que vamos a crear e instalar las dependencias.
Vamos a crear el modelo para la autenticación.
Vamos a crear el controlador para realizar ciertas pruebas y saber si estamos autenticados o no.
Vamos a integrar lo realizado anteriormente en el proyecto.
Vamos a probar el módulo de autenticación que creamos anteriormente.
Vamos a proteger el módulo de gestión con nuestro FlaskUser.
Vamos la Rest Api con Json Web Tokens.
Vamos a mostrar el uso de la función match para colocar filtros para los documentos a obtener.
Vamos a presentar el uso de las proyecciones para indicar los campos de salida.
Vamos a ver algunas combinaciones entre las proyecciones y otros operadores.
Vamos a conocer como podemos agregar campos de manera dinámica.
Vamos a conocer cómo podemos agrupar documentos por un campo.
Vamos a conocer como podemos limitar la cantidad de documentos.
Vamos a emplear algunas funciones matemáticas para la agregación, sumar, contar, mínimo, máximo y promedio.
Vamos a conocer cómo podemos ordenar documentos.
Vamos a hacer algunas pruebas actualizando un pull de registros mediante pipes.
Vamos a crear un registro y luego editar el mismo para agregar un array.
Vamos a agregar más elementos al array anterior.
Vamos a insertar un array dentro del array.
Vamos a insertar un nuevo elemento si el mismo no existe.
Vamos a eliminar un elemento mediante el operador de pop.
Vamos a eliminar un grupo de elementos por el valor.
Vamos a eliminar un elemento por el valor.
Vamos a emplear el operador de $ para actualizar todos los elementos.
Vamos a emplear el operador de $ para actualizar un elemento.
Código fuente
- Andrés Cruz
Desarrollo con Laravel, Django, Flask, CodeIgniter, HTML5, CSS3, MySQL, JavaScript, Vue, Android, iOS, Flutter
Acepto recibir anuncios de interes sobre este Blog.
!Cursos desde!
10$
En Udemy
Quedan 3d 14:04!
!Cursos desde!
4$
En Academia
Ver los cursos!Libros desde!
1$
Ver los libros