Podemos conectarnos Node.js fácilmente aa MongoDB, una base de datos NoSQL altamente escalable y flexible, puedes conectarte fácilmente desde Node.js utilizando el paquete mongodb
.
Cómo conectar node.js a mongodb
En primer lugar, instalamos el paquete mongodb
utilizando npm:
npm install mongodb
Este paquete nos permitirá conectarnos y realizar operaciones con la base de datos MongoDB desde Node.js.
Creación del archivo de conexión
Ahora creamos un archivo para manejar la conexión a MongoDB (por ejemplo dbConnection.mjs
). En este archivo, utilizaremos el módulo mongodb
para conectarnos a la base de datos.
import { MongoClient } from 'mongodb';
const uri = 'mongodb://localhost:27017'; // URL de conexión a tu base de datos
const dbName = 'mydatabase'; // Nombre de tu base de datos
async function connect() {
try {
const client = new MongoClient(uri);
await client.connect();
const db = client.db(dbName);
console.log('Conexión a MongoDB establecida.');
return db;
} catch (error) {
console.error('Error al conectar a MongoDB:', error);
throw error;
}
}
export default connect;
Asegúrate de reemplazar 'mongodb://localhost:27017'
con la URL de conexión correcta para tu base de datos MongoDB, y 'mydatabase'
con el nombre de tu base de datos
Uso de la Conexión en tu Aplicación
Ahora que hemos definido la función de conexión en dbConnection.mjs
, podemos importarla y utilizarla en cualquier parte de nuestra aplicación para realizar operaciones con la base de datos MongoDB.
Por ejemplo, en otro archivo de tu aplicación app.mjs
, podemos utilizar la función connect
para obtener una conexión a la base de datos y realizar operaciones como buscar documentos, insertar nuevos datos, actualizar registros, etc.
Vamos a verlo con un ejemplo:
import connect from './dbConnection.mjs';
async function fetchData() {
const db = await connect();
try {
const collection = db.collection('mi_coleccion');
const result = await collection.find({}).toArray();
console.log('Documentos obtenidos:', result);
} catch (error) {
console.error('Error al obtener datos:', error);
} finally {
db.close();
}
}
fetchData();
En este ejemplo, estamos obteniendo todos los documentos de la colección 'mi_coleccion'
y mostrando el resultado en la consola.
Operaciones CRUD
Una vez que tenemos el archivo de conexión, podemos utilizarlo para realizar operaciones CRUD (Crear, Leer, Actualizar, Eliminar) en nuestra base de datos MongoDB desde Node.js.
Creación de datos
const MongoClient = require('mongodb').MongoClient;
const url = 'mongodb://localhost:27017';
const dbName = 'mi_base_de_datos';
MongoClient.connect(url, { useNewUrlParser: true, useUnifiedTopology: true }, (err, client) => {
if (err) throw err;
const db = client.db(dbName);
const collection = db.collection('mi_coleccion');
const documentoNuevo = { nombre: 'Ejemplo', edad: 30 };
collection.insertOne(documentoNuevo, (err, result) => {
if (err) throw err;
console.log('Documento insertado correctamente');
client.close();
});
});
Lectura de datos
const MongoClient = require('mongodb').MongoClient;
const url = 'mongodb://localhost:27017';
const dbName = 'mi_base_de_datos';
MongoClient.connect(url, { useNewUrlParser: true, useUnifiedTopology: true }, (err, client) => {
if (err) throw err;
const db = client.db(dbName);
const collection = db.collection('mi_coleccion');
collection.find({}).toArray((err, docs) => {
if (err) throw err;
console.log('Documentos encontrados:');
console.log(docs);
client.close();
});
});
Actualización de datos
const MongoClient = require('mongodb').MongoClient;
const url = 'mongodb://localhost:27017';
const dbName = 'mi_base_de_datos';
MongoClient.connect(url, { useNewUrlParser: true, useUnifiedTopology: true }, (err, client) => {
if (err) throw err;
const db = client.db(dbName);
const collection = db.collection('mi_coleccion');
const filtro = { nombre: 'Ejemplo' };
const nuevoValor = { $set: { edad: 35 } };
collection.updateOne(filtro, nuevoValor, (err, result) => {
if (err) throw err;
console.log('Documento actualizado correctamente');
client.close();
});
});
Eliminación de datos
const MongoClient = require('mongodb').MongoClient;
const url = 'mongodb://localhost:27017';
const dbName = 'mi_base_de_datos';
MongoClient.connect(url, { useNewUrlParser: true, useUnifiedTopology: true }, (err, client) => {
if (err) throw err;
const db = client.db(dbName);
const collection = db.collection('mi_coleccion');
const filtro = { nombre: 'Ejemplo' };
collection.deleteOne(filtro, (err, result) => {
if (err) throw err;
console.log('Documento eliminado correctamente');
client.close();
});
});
Descarga el código
Todo el código de esta entrada está disponible para su descarga en Github