Aggregazioni le operazioni elaborano i record di dati e restituiscono i risultati calcolati. Le operazioni di aggregazione raggruppano i valori di più documenti insieme e possono eseguire una serie di operazioni sui dati raggruppati per restituire un unico risultato.
Prova questo -
collection.aggregate([
{ $unwind: "$items" },
{ $sort: { "items.order": 1 } },
{ $group: { _id: "$_id", items: { $push: "$items" } } }
]);
La seguente aggregazione utilizza la fase $unwind per generare un documento per ogni elemento nella matrice delle dimensioni:
Fase di $sort (aggregazione) della pipeline:- Ordina tutti i documenti di input e li restituisce alla pipeline in ordine ordinato.
La fase $sort ha la seguente forma prototipo:
{ $sort: { <field1>: <sort order>, <field2>: <sort order> ... } }
Fase Pipeline $group (aggregazione):- Raggruppa i documenti in base a un'espressione specificata e invia alla fase successiva un documento per ciascun raggruppamento distinto. I documenti di output contengono un campo _id che contiene il gruppo distinto per chiave. $group non ordina i suoi documenti di output.
La fase a gironi di $ ha il seguente modulo prototipo:
{ $group: { _id: <expression>, <field1>: { <accumulator1> :
<expression1> }, ... } }
Per ulteriori riferimenti, vedere questo collegamento - https://docs.mongodb .com/manual/reference/method/db.collection.aggregate/