MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Mongoose ordina il risultato aggregato

I risultati restituiti dalla pipeline di aggregazione sono solo oggetti semplici. Quindi esegui l'ordinamento come una fase della pipeline, non come un'operazione separata:

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

Quindi ci sono vari operatori di pipeline che possono essere utilizzati per $group o $sort o $limit e anche altre cose. Questi possono essere presentati in qualsiasi ordine e tutte le volte che è necessario. Il solo fatto di capire che una fase di "conduttura" fluisce nella successiva su cui agire.