multiple mongoosejs javascript mongodb mongoose

javascript - mongoosejs - Consulta mĂșltiple de mangosta/mongodb



populate mongodb (1)

Soy bastante nuevo en mongodb. Logro tener una idea básica de una ordenación simple basada en solo 1 parámetro. ¿Qué pasa si hay más de 2 parámetros de clasificación. por ejemplo, en una base de datos compuesta por proyectos de carpintería que tienen atributos totalCuttingTime y favorited .

La siguiente es una función correcta de mongoose / mongodb para encontrar una lista de proyectos que tienen el least corte y orden de acuerdo con el highest favoritos.

var ProjectModel= mongoose.model(''Project'', schema);

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


Es necesario poner ambos términos de sort en un objeto:

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 señalar que el estándar ECMA-262 en el que se basa Node.js no especifica que se mantenga el orden de propiedad de un objeto, y es solo un estándar de facto para que coincida con el orden de inserción. Para eliminar cualquier duda, puede utilizar una matriz en su lugar:

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