sql >> Base de Datos >  >> NoSQL >> MongoDB

Nodo + Mongodb + ordenar matriz anidada

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/