MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Node + Mongodb + trier le tableau imbriqué

Agrégations les opérations traitent les enregistrements de données et renvoient les résultats calculés. Les opérations d'agrégation regroupent les valeurs de plusieurs documents et peuvent effectuer diverses opérations sur les données groupées pour renvoyer un seul résultat.

Essayez ceci -

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

L'agrégation suivante utilise l'étape $unwind pour générer un document pour chaque élément du tableau tailles :

Étape du pipeline $sort (agrégation) :- Trie tous les documents d'entrée et les renvoie au pipeline dans l'ordre trié.

L'étape $sort a la forme prototype suivante :

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

Étape du pipeline $group (agrégation) :- Regroupe les documents selon une expression spécifiée et génère à l'étape suivante un document pour chaque groupe distinct. Les documents de sortie contiennent un champ _id qui contient la clé distincte group by. $group ne commande pas ses documents de sortie.

L'étape $group a le prototype suivant :

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

Pour plus de référence, voir ce lien - https://docs.mongodb .com/manual/reference/method/db.collection.aggregate/