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

mongoose/mongodb query ordinamento multiplo

Devi inserire entrambi sort termini in un oggetto:

exports.getMinCuttingTime = function(number, callback){ 
    ProjectModel.find()
        .sort({totalCuttingTime: 1, favoriteCount: -1})
        .select({_id: 1})
        .limit(number)
        .exec(
            function(err, projects) {
                callback(null, projects)
            }
        );
};

Vale la pena notare che lo standard ECMA-262 su cui si basa Node.js non specifica che l'ordine delle proprietà di un oggetto viene mantenuto ed è solo uno standard de facto per abbinare l'ordine di inserimento. Per eliminare ogni dubbio, puoi invece utilizzare un array:

.sort([['totalCuttingTime', 1], ['favoriteCount', -1]])