L’operatore di gruppo `$group` in MongoDB è usato per raggruppare i documenti in un set di risultati da parte di alcuni criteri specificati.
Ecco un esempio di come utilizzare l’operatore di gruppo in MongoDB:
Immagina di avere una collezione di documenti “orders” come questa:
```
[
{ “_id”: 1, “cust_id”: “abc1”, “amount”: 500, “status”: “A” },
{ “_id”: 2, “cust_id”: “xyz1”, “amount”: 250, “status”: “A” },
{ “_id”: 3, “cust_id”: “abc1”, “amount”: 300, “status”: “B” },
{ “_id”: 4, “cust_id”: “xyz1”, “amount”: 200, “status”: “A” },
{ “_id”: 5, “cust_id”: “abc1”, “amount”: 100, “status”: “B” }
]
```
E vuoi raggruppare gli ordini per cliente (`cust_id`) e sommare gli importi delle transazioni, potresti utilizzare l’operatore `$group` come questo:
```
db.orders.aggregate(
[
{
$group:
{
_id: “$cust_id”, // campo di raggruppamento
totalAmount: { $sum: “$amount” } // somma degli importi
}
}
]
)
```
L’output di questo comando sarà:
```
[
{ “_id” : “abc1”, “totalAmount” : 900 },
{ “_id” : “xyz1”, “totalAmount” : 450 }
]
```
Quindi, in questa esempio, l’operatore `$group` ha raggruppato la collezione di documenti per il campo `cust_id` e ha calcolato la somma degli importi per ogni gruppo con l’operatore `$sum`. Nota che l’alias `_id` nel campo output è obbligatorio per l’operatore `$group`.
Per ulteriori informazioni e più esempi si può vedere la documentazione di MongoDB: https://docs.mongodb.com/manual/reference/operator/aggregation/group/