MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Mongoose sortiert das aggregierte Ergebnis

Die von der Aggregationspipeline zurückgegebenen Ergebnisse sind nur einfache Objekte. Sie führen das Sortieren also als Pipeline-Phase durch, nicht als separate Operation:

Recommend.aggregate(
    [
        // Grouping pipeline
        { "$group": { 
            "_id": '$roomId', 
            "recommendCount": { "$sum": 1 }
        }},
        // Sorting pipeline
        { "$sort": { "recommendCount": -1 } },
        // Optionally limit results
        { "$limit": 5 }
    ],
    function(err,result) {

       // Result is an array of documents
    }
);

Es gibt also verschiedene Pipeline-Operatoren, die für $group verwendet werden können oder $sort oder $limit und andere Dinge auch. Diese können in beliebiger Reihenfolge und so oft wie nötig präsentiert werden. Nur zu verstehen, dass eine "Pipeline"-Phase Ergebnisse in die nächste einfließen lässt, um darauf zu reagieren.