MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Mongoose trier le résultat agrégé

Les résultats renvoyés par le pipeline d'agrégation ne sont que des objets simples. Vous effectuez donc le tri en tant qu'étape de pipeline, et non en tant qu'opération distincte :

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

Il existe donc différents opérateurs de pipeline qui peuvent être utilisés pour $group ou $sort ou $limit et d'autres choses aussi. Ceux-ci peuvent être présentés dans n'importe quel ordre et autant de fois que nécessaire. Il suffit de comprendre qu'une étape de « pipeline » entraîne les résultats dans la suivante sur laquelle agir.