Saltar al contenido
Portada » Conectar Node JS con MongoDB

Conectar Node JS con MongoDB

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 + "&nbsp;&nbsp;&nbsp;&nbsp;Id       Empleado&nbsp;&nbsp;"+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 JSJS en backend, código abierto y multiplataforma
Nest JSMontado sobre Node, soporta typescript, escribe aplicaciones rápidamente de forma escalable
Express JSSe despliega sobre Node, gestión de direccionamiento y soporte completo para montar un servidor
Node JS con MongoDBTe mostramos un ejemplo para conectar NodeJS con la base de datos NoSQL MongoDB

Recursos JS básicos

PrototypeAñadir propiedades de forma dinámica a un objeto
toLocaleStringHerramienta esencial para el formateo de fechas y números en aplicaciones internacionales
Recursividad y pilaUso de recursividad y funcionamiento de la pila JS
DesestructuraciónMecanismo para desempaquetar arrays y objetos
Manejo de StringsManejo básico de Strings, cadenas de caracteres
OperadoresUso de operadores de comparación y lógicos
PromesasGestión de peticiones asíncronas con promesas
SleepImplementación de la función sleep() en JS
ThisUso de la palabra reservada this en diferentes contextos
MapsTe enseñamos cuando usar Map y cuando Object con ejemplos
Switchery JSLibrería para modificar el estilo de los checkbox
Mejores libros Javascript EspañolEncuentra los mejores libros para aprender JS y convertirte en el desarrollador más demandado.
Exception JSManejo de excepciones en Javascript, control de errores y flujo de programa.
Obfuscator JavascriptProtege tu código Javascript Ofuscándolo
Javascript desde ceroAprende los conceptos básicos de Javascript, ponte en marcha.
LodashLodash hace que la manipulación de datos en JavaScript sea más fácil y menos propensa a errores
Formatdate JSFormateo y trabajo con fechas en javascript de forma sencilla.
DayjsBiblioteca para la gestión de fechas
padStartManeja cadenas de texto con la función padStart()