Agregace operace zpracovávají datové záznamy a vracejí vypočítané výsledky. Agregační operace seskupují hodnoty z více dokumentů dohromady a mohou se seskupenými daty provádět různé operace, aby vrátily jeden výsledek.
Zkuste toto -
collection.aggregate([
{ $unwind: "$items" },
{ $sort: { "items.order": 1 } },
{ $group: { _id: "$_id", items: { $push: "$items" } } }
]);
Následující agregace používá fázi $unwind k výstupu dokumentu pro každý prvek v poli size:
Fáze $sort (agregace) potrubí:- Seřadí všechny vstupní dokumenty a vrátí je do kanálu v seřazeném pořadí.
Fáze $sort má následující prototypovou formu:
{ $sort: { <field1>: <sort order>, <field2>: <sort order> ... } }
Fáze kanálu $group (agregace):- Seskupí dokumenty podle určitého zadaného výrazu a do další fáze vydá dokument pro každé odlišné seskupení. Výstupní dokumenty obsahují pole _id, které obsahuje odlišnou skupinu podle klíče. $group neobjednává své výstupní dokumenty.
Fáze $group má následující prototypovou formu:
{ $group: { _id: <expression>, <field1>: { <accumulator1> :
<expression1> }, ... } }
Další informace naleznete na tomto odkazu - https://docs.mongodb .com/manual/reference/method/db.collection.aggregate/