Aggregation Pipeline în MongoDB: Etapele $match, $group, $project, $lookup și Analiză de Date în Timp Real în MongoDB & NoSQL

Agregare & Analytics MongoDB 7.0

Ghid complet pentru MongoDB Aggregation Framework: filtrare cu $match, agregări numerice cu $group, îmbinări de colecții cu $lookup (JOIN NoSQL) și calculul indicatorilor KPI.

Sintaxă
db.orders.aggregate([ { $match: { ... } }, { $group: { ... } } ]);

Aggregation Pipeline este motorul nativ de procesare și transformare analitică din MongoDB. Documentele intră printr-o conductă cu mai multe etape (pipeline stages), unde fiecare etapă transformă fluxul de documente și îl transmite următoarei.

Raport Vânzări Agregate pe Categorii cu $lookup
db.orders.aggregate([
  // Etapa 1: Filtrare doar comenzile finalizate din anul curent
  { $match: { status: "DELIVERED", createdAt: { $gte: ISODate("2026-01-01") } } },

  // Etapa 2: Expandarea tabloului de produse cumpărate
  { $unwind: "$items" },

  // Etapa 3: Gruparea pe cod produs și calculul cifrelor de afaceri
  {
    $group: {
      _id: "$items.sku",
      totalRevenue: { $sum: { $multiply: ["$items.qty", "$items.price"] } },
      unitsSold: { $sum: "$items.qty" }
    }
  },

  // Etapa 4: JOIN cu colecția 'products' pentru a prelua numele oficial
  {
    $lookup: {
      from: "products",
      localField: "_id",
      foreignField: "sku",
      as: "productDetails"
    }
  },

  // Etapa 5: Sortare descrescătoare după venit
  { $sort: { totalRevenue: -1 } },
  { $limit: 5 }
]);