Node.js MongoDB Tutorial con ejemplos

En su mayoría, todas las aplicaciones web modernas tienen algún tipo de sistema de almacenamiento de datos en el backend. Por ejemplo, si toma el caso de una aplicación de compras web, datos como el precio de un artículo se almacenarán en la base de datos.

El framework Node js puede trabajar con bases de datos tanto relacionales (como Oracle y MS SQL Server) como no relacionales (como MongoDB). En este tutorial, vamos a ver cómo podemos utilizar bases de datos desde dentro de las aplicaciones Node js.
En este tutorial, usted aprenderá –

Bases de datos Node.js y NoSQL

Con los años, la base de datos NoSQL como MongoDB y MySQL se han vuelto bastante populares como bases de datos para almacenar datos. La capacidad de estas bases de datos para almacenar cualquier tipo de contenido y particularmente en cualquier tipo de formato es lo que hace que estas bases de datos sean tan famosas.

Node.js tiene la capacidad de trabajar con MySQL y MongoDB como bases de datos. Para utilizar cualquiera de estas bases de datos, es necesario descargar y utilizar los módulos necesarios mediante el administrador de paquetes de Node.

Para MySQL, el módulo requerido se llama “mysql”y para usar MongoDB el módulo requerido para ser instalado es “Mongoose”

Con estos módulos, puede realizar las siguientes operaciones en Node.js

  1. Administrar la agrupación de conexiones — Aquí es donde puede especificar el número de conexiones de base de datos MySQL que Node.js debe mantener y guardar.
  2. Cree y cierre una conexión a una base de datos. En cualquier caso, puede proporcionar una función de devolución de llamada que se puede llamar siempre que se ejecuten los métodos de conexión “create”y “close”
  3. Las consultas se pueden ejecutar para obtener datos de las respectivas bases de datos para recuperar datos.
  4. La manipulación de datos, como la inserción de datos, la eliminación y la actualización de datos, también se puede lograr con estos módulos.

Para los temas restantes, veremos cómo podemos trabajar con bases de datos MongoDB dentro de Node.js.

Usando MongoDB y Node.js

Como se discutió en el tema anterior, MongoDB es una de las bases de datos más populares utilizadas junto con Node.js.

Durante este capítulo, veremos

Cómo podemos establecer conexiones con una base de datos MongoDB

Cómo podemos realizar las operaciones normales de lectura de datos de una base de datos, así como la inserción, eliminación y actualización de registros en una base de datos MongoDB.

Para el propósito de este capítulo, supongamos que tenemos los siguientes datos de MongoDB en su lugar.

Nombre de la base de datos: EmployeeDB

Nombre de la colección: Employee

  1. Instalación de los módulos NPM

Necesita un controlador para acceder a Mongo desde una aplicación Node. Hay una serie de controladores Mongo disponibles, pero MongoDB es uno de los más populares. Para instalar el módulo MongoDB, ejecute el siguiente comando

npm install mongodb

  1. Crear y cerrar una conexión a una base de datos MongoDB. El siguiente fragmento de código muestra cómo crear y cerrar una conexión a una base de datos MongoDB.


Explicación del código:

  1. El primer paso es incluir el módulo mangosta, que se realiza a través de la función require. Una vez instalado este módulo, podemos utilizar las funciones necesarias disponibles en este módulo para crear conexiones a la base de datos.
  2. A continuación, especificamos nuestra cadena de conexión a la base de datos. En la cadena de conexión, hay 3 valores clave que se pasan.
  • El primero es ‘mongodb’ que especifica que nos estamos conectando a una base de datos MongoDB.
  • El siguiente es ‘localhost’, lo que significa que nos estamos conectando a una base de datos en la máquina local.
  • El siguiente es ‘EmployeeDB’ que es el nombre de la base de datos definida en nuestra base de datos MongoDB.
  1. El siguiente paso es conectarse realmente a nuestra base de datos. La función de conexión toma nuestra URL y tiene la posibilidad de especificar una función de devolución de llamada. Se llamará cuando se abra la conexión a la base de datos. Esto nos da la oportunidad de saber si la conexión a la base de datos fue exitosa o no.
  2. En la función, estamos escribiendo la cadena “Conexión establecida”en la consola para indicar que se creó una conexión exitosa.
  3. Finalmente, estamos cerrando la conexión usando la instrucción db.close.

Si el código anterior se ejecuta correctamente, la cadena “Conectado”se escribirá en la consola como se muestra a continuación.

3.Consultar datos en una base de datos MongoDB — Usando el controlador MongoDB también podemos obtener datos de la base de datos MongoDB.
La siguiente sección mostrará cómo podemos usar el controlador para obtener todos los documentos de nuestra colección de empleados en nuestra base de datos EmployeeDB. Esta es la colección de nuestra base de datos MongoDB, que contiene todos los documentos relacionados con los empleados. Cada documento tiene un identificador de objeto, nombre de empleado e identificador de empleado para definir los valores del documento.

Explicación del código:

  1. En el primer paso, estamos creando un cursor (Un cursor es un puntero que se utiliza para apuntar a los diversos registros obtenidos de una base de datos. A continuación, el cursor se utiliza para iterar a través de los diferentes registros de la base de datos. Aquí estamos definiendo un nombre de variable llamado cursor que se utilizará para almacenar el puntero a los registros obtenidos de la base de datos.) que apunta a los registros que se obtienen de la colección MongoDB. También tenemos la facilidad de especificar la colección ‘Empleado’ de la que obtener los registros. La función find () se utiliza para especificar que queremos recuperar todos los documentos de la colección MongoDB.
  2. Ahora estamos iterando a través de nuestro cursor y para cada documento en el cursor vamos a ejecutar una función.
  3. Nuestra función simplemente va a imprimir el contenido de cada documento en la consola.

Nota: – También es posible obtener un registro en particular de una base de datos. Esto se puede hacer especificando la condición de búsqueda en la función find (). Por ejemplo, supongamos que si sólo desea obtener el registro que tiene el nombre del empleado como Guru99, entonces esta declaración se puede escribir de la siguiente manera

Si el código anterior se ejecuta correctamente, la siguiente salida se mostrará en la consola.

Salida:

De la salida,

• Podrá ver claramente que todos los documentos de la colección se recuperan. Esto es posible mediante el uso del método find () de la conexión MongoDB (db) y la iteración a través de todos los documentos utilizando el cursor.

4. Inserción de documentos en una colección: los documentos se pueden insertar en una colección mediante el método InsertOne proporcionado por la biblioteca MongoDB. El siguiente fragmento de código muestra cómo podemos insertar un documento en una colección MongoDB.

Explicación del código:

  1. Aquí estamos utilizando el método InsertOne de la biblioteca MongoDB para insertar un documento en la colección Employee.
  2. Estamos especificando los detalles del documento de lo que se debe insertar en la colección Employee.

Si ahora comprueba el contenido de su base de datos MongoDB, encontrará el registro con Employeeid de 4 y EmployeeName de “NewEmployee”insertado en la colección Employee.

Nota: La consola no mostrará ningún resultado porque el registro se está insertando en la base de datos y no se puede mostrar ninguna salida aquí.

Para comprobar que los datos se han insertado correctamente en la base de datos, debe ejecutar los siguientes comandos en MongoDB

1. Usar empleadob
2. db.employee.find ({id. de empleado:4})

La primera instrucción garantiza que está conectado a la base de datos EmployeeDB. La segunda instrucción busca el registro que tiene el ID de empleado de 4.

5. Actualización de documentos de una colección –los documentos se pueden actualizar en una colección utilizando el método UpdateOne proporcionado por la biblioteca MongoDB. El siguiente fragmento de código muestra cómo actualizar un documento en una colección MongoDB.

Explicación del código:

  1. Aquí estamos utilizando el método “UpdateOne”de la biblioteca MongoDB, que se utiliza para actualizar un documento en una colección MongoDB.
  2. Estamos especificando los criterios de búsqueda de qué documento debe actualizarse. En nuestro caso, queremos encontrar el documento que tiene el Employee de “NewEmployee”
  3. A continuación, queremos establecer el valor de Employee del documento de “NewEmployee”a “Mohan” Si ahora comprueba el contenido de su base de datos MongoDB, encontrará el registro con Employeeid de 4 y EmployeeName de “Mohan”actualizado en la colección Employee.

Para comprobar que los datos se han actualizado correctamente en la base de datos, debe ejecutar los siguientes comandos en MongoDB

1. Usar empleadob
2. db.employee.find ({id. de empleado:4})

La primera instrucción garantiza que está conectado a la base de datos EmployeeDB. La segunda instrucción busca el registro que tiene el ID de empleado de 4.

6. Eliminar documentos de una colección: los documentos se pueden eliminar en una colección utilizando el método “DeleteOne” proporcionado por la biblioteca MongoDB. El siguiente fragmento de código muestra cómo eliminar un documento en una colección MongoDB.

Explicación del código:

  1. Aquí estamos utilizando el método “DeleteOne”de la biblioteca MongoDB, que se utiliza para eliminar un documento en una colección MongoDB.
  2. Estamos especificando los criterios de búsqueda de qué documento debe ser eliminado. En nuestro caso, queremos encontrar el documento que tiene el nombre de empleado de “Mohan”y eliminar este documento.Si ahora comprueba el contenido de su base de datos MongoDB, encontrará el registro con Employeeid de 4 y EmployeeName de “Mohan”eliminado de la colección Employee.

Para comprobar que los datos se han actualizado correctamente en la base de datos, debe ejecutar los siguientes comandos en MongoDB

1. Usar empleadob
2. db.employee.find ()

La primera instrucción garantiza que está conectado a la base de datos EmployeeDB. La segunda instrucción busca y muestra todos los registros de la colección de empleados. Aquí puede ver si el registro se ha eliminado o no.

Cómo construir una aplicación de nodo express con MongoDB para almacenar y servir contenido

Construir una aplicación con una combinación de ambos usando express y MongoDB es bastante común hoy en día.

Cuando se trabaja con aplicaciones basadas en web JavaScript, uno normalmente aquí del término pila MEAN.

  • El término pila MEAN se refiere a una colección de tecnologías basadas en JavaScript utilizadas para desarrollar aplicaciones web.
  • MEAN es un acrónimo de MongoDB, ExpressJS, AngularJS y Node.js.

Por lo tanto, siempre es bueno entender cómo Node.js y MongoDB trabajan juntos para entregar aplicaciones que interactúan con bases de datos back-end.

Veamos un ejemplo simple de cómo podemos usar “express”y “MongoDB”juntos. Nuestro ejemplo hará uso de la misma colección Employee en la base de datos MongoDB EmployeeDB.

Ahora incorporaremos Express para mostrar los datos en nuestra página web cuando los solicite el usuario. Cuando nuestra aplicación se ejecuta en Node.js, es posible que sea necesario navegar a la URL http://localhost:3000/Employeeid.

Cuando se inicia la página, se mostrará todo el ID de empleado de la colección Employee. Así que veamos el fragmento de código en secciones que nos permitirá lograr esto.

Paso 1) Defina todas las bibliotecas que necesitan ser utilizadas en nuestra aplicación, que en nuestro caso es tanto la biblioteca MongoDB como la biblioteca express.

Explicación del código:

  1. Estamos definiendo nuestra biblioteca ‘express’, que será utilizada en nuestra aplicación.
  2. Estamos definiendo nuestra biblioteca ‘express’, que será utilizada en nuestra aplicación para conectarse a nuestra base de datos MongoDB.
  3. Aquí estamos definiendo la URL de nuestra base de datos a la que conectarse.
  4. Finalmente, estamos definiendo una cadena que se utilizará para almacenar nuestra colección de identificación de empleado que necesita ser mostrado en el navegador más adelante.

Paso 2) En este paso, ahora vamos a obtener todos los registros de nuestra colección ‘Empleado’ y trabajar con ellos en consecuencia.

Explicación del código:

  1. Estamos creando una ruta a nuestra aplicación llamada ‘Employeeid.’ Así que cada vez que alguien navegue a http://localhost:3000/Employeeid de nuestra aplicación, se ejecutará el fragmento de código definido para esta ruta.
  2. Aquí estamos obteniendo todos los registros de nuestra colección ‘Employee’ a través del comando db.collection (‘Employee’) .find (). A continuación, asignaremos esta colección a una variable llamada cursor. Usando esta variable de cursor, podremos navegar a través de todos los registros de la colección.
  3. Ahora estamos usando la función cursor.each () para navegar a través de todos los registros de nuestra colección. Para cada registro, vamos a definir un fragmento de código sobre qué hacer cuando se accede a cada registro.
  4. Finalmente, vemos que si el registro devuelto no es nulo, entonces estamos tomando al empleado a través del comando “item.EmployeeID” El resto del código es sólo para construir un código HTML adecuado que permita que nuestros resultados se muestren correctamente en el navegador.

Paso 3) En este paso, vamos a enviar nuestra salida a la página web y hacer que nuestra aplicación escuche en un puerto particular.

Explicación del código:

  1. Aquí estamos enviando todo el contenido que fue construido en el paso anterior a nuestra página web. El parámetro ‘res’ nos permite enviar contenido a nuestra página web como respuesta.
  2. Estamos haciendo que toda nuestra aplicación Node.js escuche en el puerto 3000.

Salida:


De la salida,

  • Muestra claramente que todos los employeeid de la colección Employee fueron recuperados. Esto se debe a que usamos el controlador MongoDB para conectarse a la base de datos y recuperar todos los registros de empleados y posteriormente usamos “express”para mostrar los registros.

Aquí está el código para su referencia

Nota: cursor.each puede estar en desuso según la versión de su controlador MongoDB. Puede anexar //noinspection JSDeprecatedSymbols antes de cursor.each para eludir el problema. Alternativamente, puede usar ForEach. A continuación se muestra el código de ejemplo que usa ForEach

Resumen

  • Node.js se utiliza junto con las bases de datos NoSQL para construir una gran cantidad de aplicaciones web modernas. Algunas de las bases de datos comunes utilizadas son MySQL y MongoDB.
  • Uno de los módulos comunes utilizados para trabajar con bases de datos MongoDB es un módulo llamado ‘MongoDB’. Este módulo se instala a través del administrador de paquetes de Node.
  • Con el módulo MongoDB, es posible consultar registros en una colección y realizar las operaciones normales de actualización, eliminación e inserción.
  • Finalmente, una de las prácticas modernas es usar el framework express junto con MongoDB para entregar aplicaciones modernas. El marco Express puede hacer uso de los datos devueltos por el controlador MongoDB y mostrar los datos al usuario en la página web en consecuencia.
0 replies

Leave a Reply

Want to join the discussion?
Feel free to contribute!

Leave a Reply

Your email address will not be published. Required fields are marked *