En Mangosta, ¿cómo puedo ordenar por fecha? (nodo.js)
Digamos que corro esta consulta en Mangosta:
Room.find({}, function(err,docs){
}).sort({date:-1});
Esto no funciona!
7 answers
Ordenar en Mangosta ha evolucionado sobre las versiones de tal manera que algunas de estas respuestas ya no son válidas. A partir del 4.1.x liberación de Mangosta, una clasificación descendente en el campo date
se puede hacer 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 una ordenación ascendente, omita el prefijo -
en la versión de cadena o utilice valores de 1
, asc
, o ascending
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-08-22 21:08:45
La respuesta correcta es:
Blah.find({}).sort({date: -1}).execFind(function(err,docs){
});
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-05-02 21:10:18
Ha estado lidiando con este problema hoy usando Mangosta 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()
(por ejemplo, cláusulas where y campos return) pero no callback. Sin una devolución de llamada, devuelve un objeto de consulta en el que se encadena sort()
. Usted necesita llamar a find()
de nuevo (con o sin parámetros más -- no debería necesitar ningún por razones de eficiencia) que se le permite obtener el conjunto de resultados en su devolución de llamada.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-12-28 04:20:20
Hago esto:
Data.find( { $query: { user: req.user }, $orderby: { dateAdded: -1 } } function ( results ) {
...
})
Esto mostrará primero las cosas más recientes.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-02-06 19:02:09
Post.find().sort({date:-1}, function(err, posts){
});
Debería funcionar también
EDITAR:
También puedes intentar usar esto si obtienes el error sort() only takes 1 Argument
:
Post.find({}, {
'_id': 0, // select keys to return here
}, {sort: '-date'}, function(err, posts) {
// use it here
});
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-02-07 16:02:33
Ver si esto ayuda > Cómo ordenar en mangosta?
También lea esto > http://www.mongodb.org/display/DOCS/Sorting+y + Natural + Orden
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 12:34:35
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) { ... });
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-10-05 13:02:24