Geekflare recibe el apoyo de nuestra audiencia. Podemos ganar comisiones de afiliación de los enlaces de compra en este sitio.
En Desarrollo Última actualización: 25 de septiembre de 2023
Compartir en:
Escáner de seguridad de aplicaciones web Invicti - la única solución que ofrece verificación automática de vulnerabilidades con Proof-Based Scanning™.

¿No está seguro de cómo utilizar MongoDB con NodeJS? No se preocupe; esta guía le ayudará

Primeros pasos con NodeJS

En el artículo anterior, cubrí en detalle los pasos para empezar con MongoDB. Los artículos cubren en detalle el proceso de instalación así como las terminologías que utilizamos en MongoDB

NodeJS es una popular tecnología backend basada en Javascript que se ejecuta en el motor Javascript V8 de Google Chrome. NodeJS se ha hecho extremadamente popular como lenguaje backend debido a su reducida sobrecarga de peticiones y a la libertad de codificación en Javascript

Al ser un marco basado en Javascript, permite a los expertos en desarrollo front-end iniciarse fácilmente en el backend NodeJS

Esta sección cubre brevemente la configuración de un entorno NodeJS y la escritura de su primer código NodeJS

La instalación de NodeJS es bastante sencilla

Para instalar NodeJS, diríjase a la página de descargas del sitio de NodeJS. Descargue el setup correspondiente a su sistema operativo. Al ejecutar el setup, éste le llevará a través de una instalación guiada fácil de entender

Asegúrese de instalar el gestor de paquetes de Node (NPM) junto con la instalación de Node. Una vez completada la configuración, puede verificar la instalación utilizando el siguiente comando

Nodo $ -v

v8

.11.1

Una vez que haya instalado node, vamos a crear un archivo Javascript sencillo y ejecutarlo con Node

Cree un archivo index.js en un directorio de su elección y añada el siguiente código en él

console.log('Esta es mi primera aplicación nodo');
let a=5
let b=10
console.log('a b=' (a b))

Una vez que haya guardado el archivo, abra el Terminal o el símbolo del sistema. Navegue hasta el directorio donde está guardado el archivo y ejecute el comando como se muestra a continuación

$ nodo index.js

El nodo motor ejecuta el código del archivo y muestra las declaraciones pertinentes en el terminal. La salida del comando anterior será como se muestra a continuación

Esta es mi primer nodo de aplicación

a

b=15

Instalación del plugin NodeJS para MongoDB

Ahora que tiene la base de datos y el backend Node instalados procedemos a la creación de un proyecto NodeJS sencillo que pueda insertar datos en la base de datos y recuperarlos de ella

mongodb

En NodeJS, casi todas las tareas se simplifican gracias a los plugins disponibles. Similar a los controladores de base de datos en Java, el plugin MongoDB en NodeJS ayuda en la comunicación con la base de datos con comandos más sencillos

El Node Package Manager(NPM) es un plugin utilizado para instalar numerosos plugins de NodeJS con un solo comando

Para empezar, cree un directorio de práctica e inicialícelo para un nodo de proyecto utilizando los siguientes comandos

Nota: Aunque hay numerosos IDEs disponibles para NodeJS, he encontrado que Microsoft Visual Code es el más fácil de usar. No dude en descargarlo para facilitar el proceso

$ npm init
.
.
.

Pulse ^C en cualquier momento para salir.
nombre del paquete: (node_practice)
versión: (1.0.0)
descripción: Node JS a Mongo DB
punto de entrada: (index.js)
comando de prueba:
repositorio git:
palabras clave:
autor:
licencia: (ISC)
A punto de escribir en /Users/abhishekkothari/Desktop/node_practice/package.json:

{
 "nombre": "node_practice",
 "version": "1.0.0",
 "descripción": "Node JS a Mongo DB",
 "main": "index.js",
 "scripts": {
 "test": "echo "Error: no se ha especificado ninguna prueba" && exit 1"
 },
 "autor": "",
 "licencia": "ISC"
}


¿Esto está bien? (sí)

Así, la carpeta se inicializa y ahora contiene un paquete de archivos .j hijo

Este archivo package.json contiene los detalles de los plugins que se instalarán en el directorio

Para instalar el plugin de MongoDB para NodeJS, escriba el siguiente comando

$ npm install --save mongodb

Este comando instala el plugin en el directorio node_modules junto con las dependencias necesarias. La bandera --save asegura que el plugin se añada a la lista de dependencias en package.json como se muestra a continuación

"dependencias": {
 "mongodb":

^3.0.10"
 }

Conexión e inserción del primer documento

Una vez instalado el plugin necesario, es hora de insertar nuestro primer documento. Un documento en MongoDB es un único registro insertado en una de las tablas de la base de datos

Para empezar, inicie el servicio MongoDB utilizando el siguiente comando

$ ./mongod --dbpath=

En el caso de Windows, utilice el siguiente comando

> "C:Archivos de programaMongoDBServer3.6binmongod.exe"

Comenzando con nuestro primer código nodeJS para conectarnos a la base de datos. Cree un archivo index.js para empezar. Añada el siguiente código en el archivo

var mongo = require('mongodb')
var MongoClient = require('mongodb').MongoClient;

var url = "mongodb://localhost:27017/newdb";

MongoClient.connect(url,
 function(err, db) {
 if (err) throw err;
 console.log("¡Base de datos conectada!");
 db.close();

}

)

Aquí newdb es el nombre de la base de datos en la que desea colocar sus datos. Es similar a un esquema en MySQL

Sin embargo, la diferencia en el caso de MongoDB es que si no ha creado una base de datos, el complemento la crea por usted. Para insertar el primer documento, actualice el index.js para que refleje el código siguiente

var mongo = require('mongodb')
var MongoClient = require('mongodb').MongoClient;

var url = "mongodb://localhost:27017/newdb";

MongoClient.connect(url,
 function(err, db) {
 if (err) throw err;
 console.log("¡Base de datos conectada!");
 var dbo = db.db("newdb");
 dbo.collection("estudiantes").insertOne({"nombre": "Abhishek", "notas":100}, function(err, res) {
 if (err) throw err;
 console.log("1 documento insertado");
 db.close();
 });

}

)

Para ahorrarle el esfuerzo de volver a ejecutar el archivo cada vez, puede optar por instalar un plugin nodemon. Nodemon vigila cualquier cambio en el archivo y lo vuelve a ejecutar automáticamente cuando se produce un cambio

Para instalar nodemon, utilice el comando npm npm install -g nodemon

La opción -g instala nodemon globalmente. De este modo, estará disponible para su uso en cualquier proyecto nodo futuro

Inicie nodemon utilizando el sencillo comando nodemon

Si todo va bien, el primer documento se insertará en la colección denominada alumnos. Como habrá observado, no es necesario crear primero la tabla

La tabla se crea automáticamente cuando se inserta el primer documento en ella

Inserción de varios documentos

MongoDB funciona sobre cadenas JSON. Por lo tanto, insertar múltiples documentos en MongoDB es bastante sencillo. Todo lo que tendría que hacer es pasar un array JSON a la función adecuada para insertar múltiples documentos

Actualicemos el código para insertar múltiples documentos

var mongo = require('mongodb')
var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/newdb";
MongoClient.connect(url,
function(err, db) {
si (err) throwerr;
console.log("¡Base de datos conectada!

);

vardbo=db

.db("newdb");

dbo

.collection("alumnos").insertMany([{"nombre": "Juan", "notas":90},{"nombre": "Tim", "notas":80}], function(err, res) {
si (err) throwerr;
console.log("Documentos insertados");

db

.close();

}

);

}

)

Como puede observarse, hay dos cambios en el código. La función cambia a insertMany y el primer argumento es ahora una matriz JSON. Así, los documentos pasados como matriz JSON se insertarán en ella

Ver, filtrar y eliminar registros

Ver registros

De forma similar a la función insertar para insertar un documento, la función ver registros también acepta un filtro basado en JSON

Para ver todos los registros de la tabla de alumnos ejecute el siguiente código

var mongo = require('mongodb')
var MongoClient = require('mongodb').MongoClient;

var url = "mongodb://localhost:27017/newdb";

MongoClient.connect(url,
 function(err, db) {
 if (err) throw err;
 console.log("¡Base de datos conectada!");
 var dbo = db.db("newdb");
 var results = dbo.collection("alumnos").find({});
 results.forEach(fila => {
 console.log(fila);
 });

}

)

La llamada a la función find({}) recibe un JSON vacío y, por tanto, devuelve todos los documentos disponibles en la base de datos. La salida para el código anterior será similar a la que se muestra a continuación

¡Base de datos conectada!
{ _id: 5b1a1d323c5f4617b1263e49, name: 'Abhishek', marks: 100 }
{ _id: 5b1a20afb57cd517da966113, name: 'John', marks: 90 }
{ _id: 5b1a20afb57cd517da966114,

nombre: 'Tim', marcas: 80 }


Filtrar registros

Para filtrar los registros, todo lo que tiene que hacer es pasar los atributos del filtro como JSON en la función find({}) anterior. El código tendrá un aspecto similar al que se muestra a continuación

var mongo = require('mongodb')
var MongoClient = require('mongodb').MongoClient;

var url = "mongodb://localhost:27017/newdb";

MongoClient.connect(url,
 function(err, db) {
 if (err) throw err;
 console.log("¡Base de datos conectada!");
 var dbo = db.db("newdb");
 var results = dbo.collection("alumnos").find({marcas:90});
 results.forEach(fila => {
 console.log(fila);
 });

}

)

Aquí filtramos los registros con marcas iguales a 90. La salida del código anterior será similar a la que se muestra a continuación

¡Base de datos conectada!
{ _id: 5b1a20afb57cd517da966113, name: 'Juan', marks: 90 }

Para saber más sobre las cadenas de filtrado, puede visitar este enlace

Borrar registros

Por último, es hora de eliminar los registros. La operación de borrado en MongoDB utilizando NodeJS es similar a la búsqueda de una fila

Los criterios deben suministrarse utilizando JSON que siga el patrón de criterios de las cadenas de filtrado. A continuación se muestra un código de ejemplo para eliminar el registro con marcas = 90

var mongo = require('mongodb')
var MongoClient = require('mongodb').MongoClient;

var url = "mongodb://localhost:27017/newdb";

MongoClient.connect(url,
 function(err, db) {
 if (err) throw err;
 console.log("¡Base de datos conectada!");
 var dbo = db.

db

("newdb");
 dbo.collection("alumnos").remove({marcas:90});
 var results = dbo.collection("alumnos").find({marcas:90});
 if(!results.count==0){
 console.log('No se ha encontrado ningún registro');
 }
 results.forEach(fila => {
 console.log(fila);
 });

}

)

El código anterior borra los registros con marcas = 90 y luego comprueba si los registros existen o no

El código anterior da una salida similar a la que se muestra a continuación

¡Base de datos conectada!
No se ha encontrado

ningún registro
Espero que esto le dé una idea sobre el uso de MongoDB con la aplicación Node.js

¿Y ahora qué?

Conviértase en un programador profesional para subir su sueldo.

  • Abhishek Kothari
    Autor
    Abhishek es un desarrollador web con diversas habilidades en múltiples tecnologías de desarrollo web. Durante su carrera profesional, ha trabajado en numerosas aplicaciones de nivel empresarial y ha comprendido la arquitectura tecnológica y... Seguir leyendo
Gracias a nuestros patrocinadores
Más lecturas sobre desarrollo
Potencia tu negocio
Algunas de las herramientas y servicios que le ayudarán a hacer crecer su negocio.
  • Invicti utiliza el Proof-Based Scanning™ para verificar automáticamente las vulnerabilidades identificadas y generar resultados procesables en tan solo unas horas.
    Pruebe Invicti
  • Web scraping, proxy residencial, gestor de proxy, desbloqueador web, rastreador de motores de búsqueda, y todo lo que necesita para recopilar datos web.
    Pruebe Brightdata
  • Monday.com es un sistema operativo de trabajo todo en uno que te ayuda a gestionar proyectos, tareas, trabajo, ventas, CRM, operaciones, flujos de trabajo y mucho más.
    Prueba Monday
  • Intruder es un escáner de vulnerabilidades en línea que encuentra puntos débiles de ciberseguridad en su infraestructura, para evitar costosas violaciones de datos.
    Prueba Intruder