Agregacje operacje przetwarzają rekordy danych i zwracają obliczone wyniki. Operacje agregacji grupują wartości z wielu dokumentów i mogą wykonywać różne operacje na zgrupowanych danych w celu zwrócenia jednego wyniku.
Wypróbuj -
collection.aggregate([
{ $unwind: "$items" },
{ $sort: { "items.order": 1 } },
{ $group: { _id: "$_id", items: { $push: "$items" } } }
]);
Poniższa agregacja używa etapu $unwind do wyprowadzenia dokumentu dla każdego elementu w tablicy size:
Etap $sortowania potoku (agregacja):- Sortuje wszystkie dokumenty wejściowe i zwraca je do potoku w posortowanej kolejności.
Etap $sort ma następującą postać prototypu:
{ $sort: { <field1>: <sort order>, <field2>: <sort order> ... } }
Etap $grupy potoku (agregacja):- Grupuje dokumenty według określonego wyrażenia i wyprowadza do następnego etapu dokument dla każdej odrębnej grupy. Dokumenty wyjściowe zawierają pole _id, które zawiera odrębną grupę według klucza. $group nie zamawia swoich dokumentów wyjściowych.
Etap $group ma następującą formę prototypu:
{ $group: { _id: <expression>, <field1>: { <accumulator1> :
<expression1> }, ... } }
Aby uzyskać więcej informacji, zobacz ten link - https://docs.mongodb .com/manual/reference/method/db.collection.aggregate/