Es posible que desee utilizar db.eval
si está decidido a hacer esto en el lado de la base de datos.
Respuesta extraída de otra pregunta:
No creo que esto sea posible directamente; la documentación sort ciertamente no menciona ninguna forma de proporcionar una función de comparación personalizada.
Probablemente sea mejor que haga la ordenación en el cliente, pero si está realmente decidido a hacerlo en el servidor, es posible que pueda usar db.eval()
para organizar la ejecución del ordenamiento en el servidor (si su cliente lo admite).
Clasificación del lado del servidor:
db.eval(function() {
return db.scratch.find().toArray().sort(function(doc1, doc2) {
return doc1.a - doc2.a
})
});
Frente a la ordenación equivalente del lado del cliente:
db.scratch.find().toArray().sort(function(doc1, doc2) {
return doc1.a - doc2.b
});