crud mongodb atlas

CRUD Mongodb Atlas

En esta sexta sesión de la escuela desarrollo web con Node Js veremos cómo implementar CRUD Mongodb Atlas de una forma rápida y eficiente. Hay varios puntos que analizar y de hecho, a medida que avanzan las versiones de mongodb, vamos viendo nuevos cambios no solo en las funciones sino en su efectividad.

Antes de iniciar, dejaré los enlaces importantes para revisar la respectiva documentación de los diferentes métodos o funciones a usar en este post

Lo que vas a necesitar

  • Crear cuenta: haz click aquí para ver el post con video sobre cómo crear la cuenta, cluster y configuración inicial a mongodb Atlas.
  • Documentación mongoose: haz click aquí para ver la respectiva documentación de mongoose.
  • Repositorio: haz click aquí para ver el repositorio desde el commit de la sesión 6. Recuerda que en los commits puedes ver el repositorio o versión de cada sesión.
  • Documentación Mongodb atlas: haz click aquí para ver la documentación de mongodb Atlas.

Create: crear documentos en mongodb atlas

crud mongodb atlas
API Mailchimp NodeJS: cómo conectar y crear miembros en lista

Como sabemos uno de los mejores métodos para promover nuestro negocio es email marketing y si usamos…

Google Auth2.0 NodeJS: inicio de sesión con google

Una de las herramientas más importantes para nuestro sitio o desarrollo web es el inicio de sesión, …

crud mongodb atlas
CRUD Mongodb Atlas

En esta sexta sesión de la escuela desarrollo web con Node Js veremos cómo implementar CRUD Mongodb …

El primer paso en la metodología CRUD mongodb Atlas es create, y para implementar correctamente podemos usar «save()» o «insertMany». La diferencia radica en que «save» guarda el documento asignado de forma individual, pero «insermany» permite crear o subir un arreglo de objetos sin ningún problema. Vamos a ver varios:

const entradaUno = new EntradaModelo ({
 fecha: "3/7/2022",
 titulo: "Primera entrada",
 contenido: "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Urna et pharetra.",
});

entradaDos.save();

Del fragmento anterior podemos analizar varias cosas:

  • entradaUno es la variable que contiene un nuevo documento a partir del modelo «EntradaModelo». Luego de crearlo, podemos ejecutar «save()» como método de esta nueva variable. De esta manera ya hemos creado el primer documento en la colección correspondiente.
 const entradaDos = new EntradaModelo( {
     fecha: "3/7/2022",
     titulo: "Segunda entrada",
     contenido: "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Urna et pharetra pharetra massa massa. Dui sapien eget mi proin sed libero enim. Est ultricies integer quis auctor elit. Felis imperdiet proin fermentum leo. Morbi tristique senectus et netus et malesuada. Eget mi proin sed libero enim. Vitae auctor eu augue ut lectus arcu. Aliquam etiam erat velit scelerisque in dictum. Imperdiet dui accumsan sit amet.",
 });

 const entradaTres = new EntradaModelo({
     fecha: "3/8/2022",
     titulo: "Tercera entrada",
     contenido: "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Urna et pharetra pharetra massa massa. Dui sapien eget mi proin sed libero enim. Est ultricies integer quis auctor elit. Felis imperdiet proin fermentum leo. Morbi tristique senectus et netus et malesuada. Eget mi proin sed libero enim. Vitae auctor eu augue ut lectus arcu. Aliquam etiam erat velit scelerisque in dictum. Imperdiet dui accumsan sit amet.",
 });


 const documentosAsubir = [entradaDos, entradaTres];

 EntradaModelo.insertMany(documentosAsubir);

Del fragmento anterior también podemos evaluar lo siguiente:

  • entradaDos y entradaTres nuevamente se crean como variables independientes a partir del modelo creado.
  • Se crea un nuevo arreglo que contenga ambos documentos. Esto en teoría es un arreglo de objetos. RECORDAR que mongoose es el paquete que nos permite tener esa relación directa entre los objetos de javascript y los documentos de mongodb atlas. De esta manera podemos interpretarlos o manipularlos tal cual.
  • ejecutamos inserMany con el nuevo arreglo.

Claro que es posible ejecutarlo de diferentes formas, pero esta en sí es la forma más rencilla para realizarlo.

Read: leer documentos de la base de datos

La lectura por otro lado viene a ser un proceso de búsqueda como tal y para esto usamos el método find. Vamos a ver un ejemplo:

 EntradaModelo.find().then( (data) => {
     console.log(data);
 } );

En la lectura es improtante ver en consola qué es lo que estmos obteniendo pero desde unas versiones atraás de mongodb, ya no podemos usar funciones callback como lo hacíamos antes. Ahora, un método para poder ver o usar los datos es usar «then» con función de flecha e imprimiendo lo que se obtiene de la función.

Es aquí cuando ya podremos ver los documentos que hemos subido anteriormente. Claramente como en «Create», «read» también cuenta con varias formas de implementar la búsqueda como: findOne, findbyId, entre otros. A su vez, estos también pueden cambiar sus argumentos para poder filtrar aún más la búsqueda.

Update: actualizar datos que ya están en la base de datos

Este paso es clave porque prácticamente aplicamos los dos anteriores métodos al tiempo entonces, lo ideal siempre es leer antes de actualizar para no dañar ningún dato.

//crear variables
    let idEntrada   = req.body.idEntrada;
    let nuevoContenido = req.body.contenidoActualizado;
    

    try {
        // busca un documento con el id. Luego reemplaza solo el campo "contenido" con el valor asigando.
        EntradaModelo.updateOne({_id: idEntrada}, {$set: {"contenido": nuevoContenido} }).then( (data) =>{
            console.log("finalizado");
            res.redirect("/gracias");
        } );
    } catch (error) { console.log(error);}

En lo anterior podremos revisar varias cosas al usar «updateOne»:

  • La función o bueno todo el proceso se realiza dentro de «try» para que en dado caso que ocurra un problema, podamos ver el error sin problema.
  • El id es clave para este proceso, por eso siempre tener en cuenta compartir el id de cada documento en cada formulario, en este caso que usamos EJS.
  • usamos $set, el cual nos permite modificar el valor de un campo en específico, indicando dentro de los corchetes el campo y luego el valor.

Delete: borrar archivos de la base de datos

Por último vamos a eliminar los archivos de la base de datos. Esto en lo personal es mejor siempre realizarlo con el documento entero. Cuando trabajamos con abses de datos en mongodb, podremos usar en diferentes partes de la web, campos que sabemos que «todos los documentos de la colección tienen» y si en dado caso borramos algo de forma incorrecta, puede romper la web.

let idEntrada   = req.body.idEntrada;

try {
        // busca un documento con el id. Luego reemplaza solo el campo "contenido" con el valor asigando.
        EntradaModelo.deleteOne({_id: idEntrada}).then( (data) =>{
            console.log("finalizado");
            res.redirect("/gracias");
        } );
    } catch (error) { console.log(error);}

Al aplicar «deleteOne» podemos observar lo siguiente:

  • El id es lo más importante ya que este indica el filtro principal para eliminar, entonces es el único argumento que vamos a pasar. Una vez se encuentre, este se eliminará.
  • Ejecutamos también con «then» para poder renderizar luego la página de «gracias» y saber que se ha eliminado correctamente.

Video de ayuda

Hice este video como la quinta sesión del curso para ayudarte en el proceso más detenidamente. Si te gusta, no olvides dar like y suscribirte para nuevos videos!

CRUD Mongodb Atlas

Producto sugerido

Si eres como yo que pasa bastatne tiempo frente al compu, puede que la barra de luz te sirva bastante para cuidar tu vista en esas largas jornadas. También te dejo aquí el post para que veas la reseña completa.

LAMPARA – 4528 valoraciones

Quntis Lámpara para monitor de computadora, barra de luz para monitor de pantalla para el cuidado de los ojos, lámpara de tareas LED de lectura electrónica con atenuación automática, barra de lámpara regulable, control táctil, sin deslumbramiento de pantalla, ahorro de espacio, lámparas de escritorio para oficina en casa

  • Sin reflejos de pantalla y sin parpadeo, antiluz azul: la barra de luz para monitor de computadora Quntis tiene un diseño óptico asimétrico único que ilumina solo tu escritorio y teclado mientras garantiza que no se reflejen en la pantalla. Gracias a su avanzado sistema de protección ocular, nuestras lámparas de escritorio para oficina en casa bloquean la luz azul y la radiación óptica, aliviando eficazmente la fatiga ocular para proteger tus ojos. Es la opción ideal para estudiantes, diseñadores de pintura y trabajadores de oficina de negocios.

VER EN AMAZON

Conclusión

En esta sexta sesión aprendemos a implementar CRUD Mongodb atlas de forma sencilla pero teniendo claro que se actualiza de forma constante la documentación por ende, debemos tener claro cuáles son los métodos que preferimos utilizar y cómo hacerlo. Lo mejor siempre será la forma más sencilla y con menos errores o complicaciones a futuro.

¿De cuánta utilidad te ha parecido este contenido?

¡Haz clic en una estrella para puntuar!

Promedio de puntuación 0 / 5. Recuento de votos: 0

Hasta ahora, ¡no hay votos!. Sé el primero en puntuar este contenido.

Ya que has encontrado útil este contenido...

¡Sígueme en los medios sociales!

Deja un comentario

Carrito de compra