Pregunta

Usando MongoDB con Mongoose:

Mi código actual devuelve los documentos correctos pero los envía al cliente en el orden incorrecto. Intenté agregar otro comando de clasificación después del .limit () para revertir esto, pero no ha funcionado bien. ¿Alguna idea para que esto suceda dentro de la llamada DB en lugar de código adicional para revertir el pedido?

Item.find().sort('_id','descending').limit(40).each(function(err, doc) {
    if(doc != null){
        client.send(JSON.stringify(doc));       
    }
});
¿Fue útil?

Solución

¿Qué tal esto?

var orderedList = new Array();
Item.find().sort('_id','descending').limit(40).each(function(err, doc) {
    orderedList.push(doc);
});

for (var i=orderedList.length; i>=0; i--){
   orderedList[i].doYourThang..
}

Probar: JQuery .each () al revés para el complemento inverso ()

Otros consejos

Dependiendo del contexto real de su consulta MongoDB, pruebe esto (Meteor Client.js):

Item.find({}, { sort: { _id: -1 } })

o en DB shell ese código:

Item.find({}).sort({'_id': -1});
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top