Sortieren verschachtelter Arrays in MongoDB
Problem:
Wie sortiert man ein eingebettetes Array-Feld in einem MongoDB-Dokument, z. B. das Punkte-Array in der Studentensammlung?
Vorgeschlagene Lösung:
Aufgrund von Einschränkungen in den nativen Sortierfunktionen von Mongo müssen Sie entweder Anwendungscode oder MongoDB-Aggregation verwenden Framework zum Bearbeiten eingebetteter Arrays.
Aggregation Framework-Lösung:
Mit dem MongoDB Aggregation Framework können Sie die folgenden Schritte ausführen, um das Scores-Array in absteigender Reihenfolge zu sortieren:
Aggregationsbeispiel:
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 }} ])
Ausgabe (Beispiel):
{ "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 ein eingebettetes Array-Feld in MongoDB?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!