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 }} )
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 }
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!