Tri des tableaux imbriqués dans MongoDB
Problème :
Comment trier un champ de tableau intégré dans un Document MongoDB, tel que le tableau des scores dans l'étudiant collection ?
Solution proposée :
En raison des limitations des capacités de tri natives de Mongo, vous devez utiliser soit le code d'application, soit MongoDB Aggregation Framework pour manipuler les tableaux intégrés.
Solution du cadre d'agrégation :
À l'aide du cadre d'agrégation MongoDB, vous pouvez effectuer la étapes suivantes pour trier le tableau des scores par ordre décroissant :
Agrégation Exemple :
db.students.aggregate([ // Initial document match { $match: { _id : 1 }}, // Expand scores array { $unwind: '$scores' }, // Filter homework scores { $match: { 'scores.type': 'homework' }}, // Sort in descending order { $sort: { 'scores.score': -1 }} ])
Sortie (échantillon) :
{ "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!