MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Nodo + Mongodb + ordina array nidificato

Aggregazioni le operazioni elaborano i record di dati e restituiscono i risultati calcolati. Le operazioni di aggregazione raggruppano i valori di più documenti insieme e possono eseguire una serie di operazioni sui dati raggruppati per restituire un unico risultato.

Prova questo -

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

La seguente aggregazione utilizza la fase $unwind per generare un documento per ogni elemento nella matrice delle dimensioni:

Fase di $sort (aggregazione) della pipeline:- Ordina tutti i documenti di input e li restituisce alla pipeline in ordine ordinato.

La fase $sort ha la seguente forma prototipo:

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

Fase Pipeline $group (aggregazione):- Raggruppa i documenti in base a un'espressione specificata e invia alla fase successiva un documento per ciascun raggruppamento distinto. I documenti di output contengono un campo _id che contiene il gruppo distinto per chiave. $group non ordina i suoi documenti di output.

La fase a gironi di $ ha il seguente modulo prototipo:

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

Per ulteriori riferimenti, vedere questo collegamento - https://docs.mongodb .com/manual/reference/method/db.collection.aggregate/