Estoy usando MongoDB con Node.JS. Tengo una colección que contiene una fecha y otras filas. La fecha es un Dateobjeto de JavaScript .
¿Cómo puedo ordenar esta colección por fecha?
datecolumna: stackoverflow.com/questions/5125521/…
Estoy usando MongoDB con Node.JS. Tengo una colección que contiene una fecha y otras filas. La fecha es un Dateobjeto de JavaScript .
¿Cómo puedo ordenar esta colección por fecha?
datecolumna: stackoverflow.com/questions/5125521/…
Respuestas:
Solo una ligera modificación a la respuesta de @JohnnyHK
collection.find().sort({datefield: -1}, function(err, cursor){...});
En muchos casos de uso, deseamos que se devuelvan los últimos registros (como para las últimas actualizaciones / inserciones).
Dateobjetos sin una función no me funciona en 2.6.3.
collection.find().sort(...).exec(function(err, cursor) {})
Ordenar por fecha no requiere nada especial. Simplemente ordene por el campo de fecha deseado de la colección.
Actualizado para el controlador nativo de 1.4.28 node.js, puede ordenar de forma ascendente datefieldutilizando cualquiera de las siguientes formas:
collection.find().sort({datefield: 1}).toArray(function(err, docs) {...});
collection.find().sort('datefield', 1).toArray(function(err, docs) {...});
collection.find().sort([['datefield', 1]]).toArray(function(err, docs) {...});
collection.find({}, {sort: {datefield: 1}}).toArray(function(err, docs) {...});
collection.find({}, {sort: [['datefield', 1]]}).toArray(function(err, docs) {...});
'asc'o 'ascending'también se puede usar en lugar de 1.
Para descendente tipo, uso 'desc', 'descending'o -1en lugar de la 1.
db.getCollection('').find({}).sort({_id:-1})
Esto ordenará su colección en orden descendente según la fecha de inserción
Las respuestas de Sushant Gupta están un poco desactualizadas y ya no funcionan.
El siguiente fragmento debería ser así ahora:
collection.find({}, {"sort" : ['datefield', 'asc']} ).toArray(function(err,docs) {});
toArrayparte.
Esto funcionó para mí:
collection.find({}, {"sort" : [['datefield', 'asc']]}, function (err, docs) { ... });
Usando Node.js, Express.js y Monk
collection.find().sort('date':1).exec(function(err, doc) {});
esto funcionó para mí
se hace referencia https://docs.mongodb.org/getting-started/node/query/
si su formato de fecha es así: 14/02/1989 ----> puede encontrar algunos problemas
necesitas usar ISOdate así:
var start_date = new Date(2012, 07, x, x, x);
-----> el resultado ------> ISODate ("2012-07-14T08: 14: 00.201Z")
ahora solo usa la consulta de esta manera:
collection.find( { query : query ,$orderby :{start_date : -1}} ,function (err, cursor) {...}
Eso es :)
Con mangosta no pude usar 'toArray' y recibí el error: TypeError: Collection.find(...).sort(...).toArray is not a function.
la función toArray existe en la clase Cursor del controlador Native MongoDB NodeJS ( referencia ).
También sort acepta solo un parámetro, por lo que no puede pasar su función dentro de él.
Esto funcionó para mí (como respondió Emil ):
collection.find().sort('-date').exec(function(error, result) {
// Your code
})