Respuestas:
La clasificación en Mongoose ha evolucionado a lo largo de los lanzamientos de manera que algunas de estas respuestas ya no son válidas. A partir de la versión 4.1.x de Mongoose, date
se puede realizar una clasificación descendente en el campo de cualquiera de las siguientes maneras:
Room.find({}).sort('-date').exec(function(err, docs) { ... });
Room.find({}).sort({date: -1}).exec(function(err, docs) { ... });
Room.find({}).sort({date: 'desc'}).exec(function(err, docs) { ... });
Room.find({}).sort({date: 'descending'}).exec(function(err, docs) { ... });
Room.find({}).sort([['date', -1]]).exec(function(err, docs) { ... });
Room.find({}, null, {sort: '-date'}, function(err, docs) { ... });
Room.find({}, null, {sort: {date: -1}}, function(err, docs) { ... });
Para un orden ascendente, omitir el -
prefijo de la versión de cadena o valores de uso de 1
, asc
o ascending
.
find
método incorrecto en los documentos. Ver Model.find
.
Module#property
notación y busqué #find
. Parece que no hay una manera fácil de navegar o buscar en los documentos. La búsqueda de resultados arroja 187 resultados.
_id
campo. Por ejemplo, para obtener el registro más reciente, puede hacer:await db.collection.findOne().sort({ _id: -1 });
La respuesta correcta es:
Blah.find({}).sort({date: -1}).execFind(function(err,docs){
});
He estado lidiando con este problema hoy usando Mongoose 3.5 (.2) y ninguna de las respuestas me ayudó a resolver este problema. El siguiente fragmento de código hace el truco
Post.find().sort('-posted').find(function (err, posts) {
// user posts array
});
Puede enviar cualquier parámetro estándar que necesite find()
(p. Ej., Cláusulas where y campos de retorno) pero sin devolución de llamada. Sin una devolución de llamada, devuelve un objeto de consulta que se encadena sort()
. find()
Debe volver a llamar (con o sin más parámetros, no debería necesitar ninguno por razones de eficiencia), lo que le permitirá obtener el conjunto de resultados en su devolución de llamada.
Post.find().sort({date:-1}, function(err, posts){
});
Debería funcionar también
EDITAR:
También puede intentar usar esto si obtiene el error sort() only takes 1 Argument
:
Post.find({}, {
'_id': 0, // select keys to return here
}, {sort: '-date'}, function(err, posts) {
// use it here
});
Error: sort() only takes 1 Argument
Post.find({}, {'_id': 0}).sort("-date").function(err, posts){});
Solución corta:
const query = {}
const projection = {}
const options = { sort: { id: 1 }, limit: 2, skip: 10 }
Room.find(query, projection, options).exec(function(err, docs) { ... });
Vea si esto ayuda> ¿Cómo ordenar en mangosta?
Lea también esto> http://www.mongodb.org/display/DOCS/Sorting+and+Natural+Order
Query#find([criteria], [callback])
. Pensé que tal vez había un apretón de manos secreto que dice que "criterios" pueden tener hasta tres argumentos, pero enumera el tipo como "Objeto".