Agregaciones las operaciones procesan registros de datos y devuelven resultados calculados. Las operaciones de agregación agrupan valores de varios documentos y pueden realizar una variedad de operaciones en los datos agrupados para devolver un único resultado.
Prueba esto:
collection.aggregate([
{ $unwind: "$items" },
{ $sort: { "items.order": 1 } },
{ $group: { _id: "$_id", items: { $push: "$items" } } }
]);
La siguiente agregación usa la etapa $unwind para generar un documento para cada elemento en la matriz de tamaños:
Pipeline $sort (agregación) etapa:- Ordena todos los documentos de entrada y los devuelve a la canalización en orden ordenado.
La etapa $sort tiene la siguiente forma de prototipo:
{ $sort: { <field1>: <sort order>, <field2>: <sort order> ... } }
Etapa (agregación) de $grupo de canalización:- Agrupa documentos por alguna expresión especificada y envía a la siguiente etapa un documento para cada agrupación distinta. Los documentos de salida contienen un campo _id que contiene el grupo diferenciado por clave. $group no ordena sus documentos de salida.
La etapa $group tiene la siguiente forma de prototipo:
{ $group: { _id: <expression>, <field1>: { <accumulator1> :
<expression1> }, ... } }
Para obtener más referencia, consulte este enlace:https://docs.mongodb .com/manual/reference/method/db.collection.aggregate/