Maison >interface Web >js tutoriel >Comment trier les tableaux dans les documents intégrés dans MongoDB ?

Comment trier les tableaux dans les documents intégrés dans MongoDB ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-07 08:01:021049parcourir

How to Sort Arrays within Embedded Documents in MongoDB?

Tri des tableaux dans les documents intégrés dans MongoDB

Lorsque vous travaillez avec MongoDB, il est souvent nécessaire de trier les tableaux contenus dans les documents intégrés. Cela peut être une tâche délicate, mais heureusement, il existe plusieurs méthodes disponibles.

Cette question tourne autour du tri du tableau « scores » dans les dossiers des élèves par ordre décroissant de score. La solution proposée repose sur l'utilisation du shell mongo et du Aggregation Framework, une nouvelle fonctionnalité introduite dans MongoDB 2.2.

La requête d'agrégation fournie dans la réponse emploie plusieurs étapes :

  1. $match : Cette étape filtre la collection pour le document souhaité à l'aide d'un critère de correspondance. Dans ce cas, il sélectionne le document avec _id égal à 1.
  2. $unwind : Cette étape déconstruit le tableau "scores" intégré, le transformant en un flux de documents individuels. Chaque document contient le _id de l'étudiant, le nom et un seul score.
  3. $match : Cette étape filtre les documents déroulés en fonction du champ "type", en sélectionnant uniquement ceux avec "type" égal à "devoirs".
  4. $sort : Cette étape trie les documents par ordre décroissant du champ "score" au sein du document intégré "scores".

Le résultat est un ensemble de documents avec le _id, le nom et le score le plus élevé aux devoirs pour chaque élève. Il est important de noter que le framework d'agrégation permet des transformations et un filtrage plus complexes, ce qui en fait un outil puissant pour travailler avec des tableaux intégrés dans MongoDB.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn