Heim > Artikel > Web-Frontend > Wie sortiere ich eingebettete Arrays in MongoDB-Sammlungen?
Eingebettete Arrays in MongoDB-Sammlungen sortieren
Problem:
Sie haben eine MongoDB-Sammlung von Schülerdatensätze, die jeweils ein eingebettetes Array von Ergebnissen enthalten. Sie möchten das Punkte-Array in absteigender Reihenfolge der Punktezahl für ein bestimmtes Dokument sortieren.
Lösung:
Um ein eingebettetes Array zu sortieren, können Sie einen der beiden benutzerdefinierten Anwendungscodes verwenden oder das in MongoDB 2.2 eingeführte Aggregation Framework.
Verwendung des Aggregation Framework:
Die folgende MongoDB-Shell-Aggregationspipeline sortiert das Scores-Array des Dokuments mit _id 1 in absteigender Reihenfolge der Punktzahl:
db.students.aggregate( { $match: { _id : 1 }}, { $unwind: '$scores' }, { $match: { 'scores.type': 'homework' }}, { $sort: { 'scores.score': -1 }} )
Ausgabe:
Diese Aggregation erzeugt die folgende Ausgabe, die die sortierten Hausaufgabenergebnisse für den Schüler mit _id 1 zeigt:
{ "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 }
Das obige ist der detaillierte Inhalt vonWie sortiere ich eingebettete Arrays in MongoDB-Sammlungen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!