sql >> Base de Datos >  >> NoSQL >> MongoDB

clasificación personalizada mongoose/mongodb

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 
});