
En este tutorial aprenderás como conectar Node JS con MongoDB de la forma más fácil y directa. ¡Te mostramos todos los pasos!.
El framework Node js puede trabajar tanto con bases de datos relacionales (Oracle, SQL Server, MySQL) como con bases de datos NoSQL como MongoDB, CassandraDB, Neo4J, etc.
Node JS y bases de datos NoSQL
Para que Node JS pueda trabajar con cualquier base de datos es necesario descargarse los módulos necesarios con el gestor de paquetes.
Para MongoDB el módulo se llama Mongoose. Con este módulo pueden manejarse las siguientes operaciones:
- Gestión del pool de conexiones.
- Crear y cerrar la conexión con la base de datos.
- Ejecución de consultas para recuperar datos.
- Manipulación de datos: inserciones, borrados, actualizaciones.
Pasos para conectar Node JS con MongoDB
A lo largo de esta parte partiremos de los siguientes datos:
- Nombre de la base de datos: EmpleadosDB
- Nombre de la colección: Empleados
Documents
{
{IdEmpleado : 1, Nombre : Antonio},
{IdEmpleado : 2, Nombre : Pepito},
{IdEmpleado : 3, Nombre : Juanito},
}
Instalación de módulos NPM
Debe ejecutarse el siguiente parámetro:
npm install mongodb
Crear y cerrar conexión
El código siguiente muestra como crear una conexión contra MongoDB y como cerrarla posteriormente:
var clienteMongo = require('mongodb').MongoClient;
var url = 'mongodb://localhost/EmpleadosDB';
clienteMongo.connnect(url, function(err, db))
{
console.log("Conectado!");
db.close();
}
);
Como podemos ver, el primer paso consiste en cargar el módulo mongoose. A continuación se especifica la cadena de conexión con la base de datos. Tras estos puntos ejecutamos la conexión con la base de datos y si todo ha ido bien lo escribe por consola y por último cierra la conexión.
Consulta de datos
El siguiente código muestra como consultar datos tras establecer la conexión con la base de datos:
var clienteMongo = require('mongodb').MongoClient;
var url = 'mongodb://localhost/EmpleadosDB';
clienteMongo.connect(url, function(err, db) {
var cursor = db.collection('Empleados').find();
cursor.each(function(err, doc) {
console.log(doc);
});
});
Consulta para recuperar un registro en particular:
var cursor = db.collection('Empleados').find({Nombbre: "Pepito"})
Insertando documentos en una colección
var clienteMongo = require('mongodb').MongoClient;
var url = 'mongodb://localhost/EmpleadosDB';
clienteMongo.connect(url, function(err, db) {
db.collection('Empleados').insertOne({
Employeeid: 4,
EmployeeName: "NuevoEmpleado"
});
});
Actualizando documentos en una colección
var clienteMongo = require('mongodb').MongoClient;
var url = 'mongodb://localhost/EmpleadosDB';
clienteMongo.connect(url, function(err, db) {
db.collection('Empleados').updateOne({
"Nombre": "NuevoEmpleado"
}, {
$set: {
"Nombre": "Manolito"
}
});
});
Borrando documentos en una colección
var clienteMongo = require('mongodb').MongoClient;
var url = 'mongodb://localhost/EmpleadosDB';
clienteMongo.connect(url, function(err, db) {
db.collection('Empleados').deleteOne(
{
"Nombre": "Manolito"
}
);
});
Como construir una aplicación Express JS con MongoDB
Declarar las librerías
var express = require('express');
var aplicacion=express();
var clienteMongo= require('mongodb').MongoClient;
var url='mongodb://localhost/EmpleadosDB';
var cadena="";
Recuperar registros
aplicacion.route('/IdEmpleado').get(function(req, res){
clienteMongo.connect(url, function(err, db) {
var cursor=db.collection('Empleados').find();
cursor.each(function(err, item) {
if(item!=null){
cadena = cadena + " Id Empleado "+item.IdEmpleado+"</br>";
}});
Envío de la salida a la página web
res.send(cadena);
db.close();
});
});
var server = aplicacion.listen(3000, function() {});
Mas recursos JS backend
Node JS | JS en backend, código abierto y multiplataforma |
Nest JS | Montado sobre Node, soporta typescript, escribe aplicaciones rápidamente de forma escalable |
Express JS | Se despliega sobre Node, gestión de direccionamiento y soporte completo para montar un servidor |
Node JS con MongoDB | Te mostramos un ejemplo para conectar NodeJS con la base de datos NoSQL MongoDB |
Recursos JS básicos
Prototype | Añadir propiedades de forma dinámica a un objeto |
toLocaleString | Herramienta esencial para el formateo de fechas y números en aplicaciones internacionales |
Recursividad y pila | Uso de recursividad y funcionamiento de la pila JS |
Desestructuración | Mecanismo para desempaquetar arrays y objetos |
Manejo de Strings | Manejo básico de Strings, cadenas de caracteres |
Operadores | Uso de operadores de comparación y lógicos |
Promesas | Gestión de peticiones asíncronas con promesas |
Sleep | Implementación de la función sleep() en JS |
This | Uso de la palabra reservada this en diferentes contextos |
Maps | Te enseñamos cuando usar Map y cuando Object con ejemplos |
Switchery JS | Librería para modificar el estilo de los checkbox |
Mejores libros Javascript Español | Encuentra los mejores libros para aprender JS y convertirte en el desarrollador más demandado. |
Exception JS | Manejo de excepciones en Javascript, control de errores y flujo de programa. |
Obfuscator Javascript | Protege tu código Javascript Ofuscándolo |
Javascript desde cero | Aprende los conceptos básicos de Javascript, ponte en marcha. |
Lodash | Lodash hace que la manipulación de datos en JavaScript sea más fácil y menos propensa a errores |
Formatdate JS | Formateo y trabajo con fechas en javascript de forma sencilla. |
Dayjs | Biblioteca para la gestión de fechas |
padStart | Maneja cadenas de texto con la función padStart() |