¿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
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 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