sql >> Base de Datos >  >> NoSQL >> MongoDB

Mongoose ordena el resultado agregado

Los resultados devueltos por la canalización de agregación son solo objetos simples. Así que haces la clasificación como una etapa de canalización, no como una operación separada:

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

Entonces, hay varios operadores de canalización que se pueden usar para $group o $sort o $limit y otras cosas también. Estos se pueden presentar en cualquier orden y tantas veces como sea necesario. Solo entendiendo que una etapa de "canalización" fluye hacia la siguiente para actuar.