MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Node + Mongodb + classificar matriz aninhada


Agregações operações processam registros de dados e retornam resultados computados. As operações de agregação agrupam valores de vários documentos e podem executar várias operações nos dados agrupados para retornar um único resultado.

Tente isto -
collection.aggregate([
  { $unwind: "$items" },
  { $sort: { "items.order": 1 } },
  { $group: { _id: "$_id", items: { $push: "$items" } } }
]);

A agregação a seguir usa o estágio $unwind para gerar um documento para cada elemento na matriz de tamanhos:

Estágio $sort (agregação) do pipeline:- Classifica todos os documentos de entrada e os retorna ao pipeline em ordem ordenada.

O estágio $sort tem o seguinte formulário de protótipo:

{ $sort: { <field1>: <sort order>, <field2>: <sort order> ... } }

Estágio do pipeline $group (agregação):- Agrupa documentos por alguma expressão especificada e envia para o próximo estágio um documento para cada agrupamento distinto. Os documentos de saída contêm um campo _id que contém o grupo distinto por chave. $group não ordena seus documentos de saída.

O estágio $group tem o seguinte formulário de protótipo:

{ $group: { _id: <expression>, <field1>: { <accumulator1> : <expression1> }, ... } }

Para obter mais referências, consulte este link - https://docs.mongodb .com/manual/reference/method/db.collection.aggregate/