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

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

Patricia Arquette
Libérer: 2024-11-07 07:27:03
original
290 Les gens l'ont consulté

How to Sort Embedded Arrays in MongoDB Collections?

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

Problème :

Vous avez une collection MongoDB de dossiers d'étudiants, chacun contenant un tableau intégré de scores. Vous souhaitez trier le tableau des scores par ordre décroissant de score pour un document spécifique.

Solution :

Pour trier un tableau intégré, vous pouvez utiliser soit le code d'application personnalisé ou le framework d'agrégation introduit dans MongoDB 2.2.

Utilisation de l'agrégation Framework :

Le pipeline d'agrégation de shell MongoDB suivant trie le tableau de scores du document avec _id 1 par ordre décroissant de score :

db.students.aggregate(
    { $match: {
        _id : 1
    }},
    { $unwind: '$scores' },
    { $match: {
        'scores.type': 'homework'
    }},
    { $sort: {
        'scores.score': -1
    }}
)
Copier après la connexion

Sortie :

Cette agrégation produit le résultat suivant, affichant les résultats des devoirs triés pour l'élève avec _id 1 :

{
    "result" : [
        {
            "_id" : 1,
            "name" : "Aurelia Menendez",
            "scores" : {
                "type" : "homework",
                "score" : 71.76133439165544
            }
        },
        {
            "_id" : 1,
            "name" : "Aurelia Menendez",
            "scores" : {
                "type" : "homework",
                "score" : 34.85718117893772
            }
        }
    ],
    "ok" : 1
}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal