$lookup en MongoDB
El operador
$lookup
en MongoDB
se utiliza para realizar operaciones de agregación y combinar documentos de dos colecciones en una sola consulta. Es especialmente útil cuando necesitas recuperar información de múltiples colecciones y combinarla en un solo resultado.
MongoDB almacena documentos JSON flexibles. Esta operación encaja en el flujo consultar → filtrar → transformar → agregar que verás en el tutorial completo.
Prueba en el editor y adapta los campos del documento a tu caso de uso.
Crear una consulta de agregación con $lookup
A continuación, crearemos una consulta de agregación que utiliza el operador
$lookup
. Imaginemos que tenemos dos colecciones, una llamada "usuarios" y otra llamada "órdenes". Queremos combinar información de ambas colecciones en una sola consulta.
Node.js:
Ejemplo
async function realizarAgregacion() {
const pipeline = [
{
$lookup: {
from: "ordenes", // Nombre de la segunda colección
localField: "usuarioId", // Campo local en la colección actual
foreignField: "usuarioId", // Campo en la colección "ordenes"
as: "ordenesCombinadas" // Alias para los resultados combinados
}
}
];
const collection = client.db("tu_base_de_datos").collection("usuarios");
const resultado = await collection.aggregate(pipeline).toArray();
console.log("Resultados de la agregación:", resultado);
}
realizarAgregacion();
En este ejemplo, estamos utilizando
$lookup
para combinar documentos de la colección "usuarios" con documentos de la colección "ordenes" en función del campo
usuarioId
. Los resultados combinados se almacenan en un campo llamado "ordenesCombinadas".
Ejecutar la consulta de agregación
Ejecuta la consulta de agregación que hemos definido. Esta consulta recuperará documentos de la colección "usuarios" y combinará información de la colección "ordenes" basándose en el campo
usuarioId
.
Nota :
-
Asegúrate de que los nombres de las colecciones, los campos
localFieldyforeignField, y los alias (as) coincidan con tu base de datos y tu caso de uso específico.
El operador
$lookup
es una herramienta poderosa para combinar datos de múltiples colecciones en MongoDB. Puedes personalizar la consulta de agregación según tus necesidades específicas. Además, puedes realizar otras etapas de agregación para refinar y dar forma a los resultados según lo necesites.
Resumen
- Repasa el ejemplo principal y varíalo con tus propios datos.
- Continúa con la lección siguiente del tutorial.