L’operatore di aggregazione in MongoDB è un framework molto potente e flessibile che permette di eseguire operazioni di trasformazione dei dati in diverse fasi.
Per utilizzarlo, si usa la funzione `aggregate()` su una collezione. Questa funzione accetta un array di oggetti, ciascuno dei quali rappresenta una fase dell’aggregazione.
Ecco un esempio molto semplice. Supponiamo di avere una collezione `orders` con documenti di questo tipo:
```
{
_id: 1,
customer: ‘John’,
product: ‘Apples’,
amount: 5
}
```
Se volessimo calcolare la quantità totale di prodotti ordinati per ogni cliente, potremmo usare l’operatore `$group` di questo modo:
```
db.orders.aggregate([
{
$group: {
_id: ‘$customer’,
total: { $sum: ‘$amount’ }
}
}
]);
```
Nell’esempio, la fase `$group` raggruppa i documenti per cliente (`_id: ‘$customer’`) e per ciascun gruppo calcola la somma delle quantità (`total: { $sum: ‘$amount’ }`).
Ci sono molte altre operazioni che si possono fare con l’aggregazione, come il filtraggio dei documenti con `$match`, la trasformazione dei documenti con `$project`, l’ordinamento con `$sort`, ecc.
Ricorda che l’ordine delle fasi nell’array è importante e determina l’ordine di esecuzione delle operazioni.