MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

classificação personalizada mangusto/mongodb


Você pode querer usar db.eval se você estiver determinado a fazer isso no lado do banco de dados.

Resposta extraída de outra pergunta:

Eu não acho que isso seja possível diretamente; a documentação de classificação certamente não menciona nenhuma maneira de fornecer uma função de comparação personalizada.

Provavelmente é melhor fazer a classificação no cliente, mas se você estiver realmente determinado a fazê-lo no servidor, poderá usar db.eval() para organizar a execução da classificação no servidor (se o seu cliente suportar).

Classificação do lado do servidor:
db.eval(function() { 
  return db.scratch.find().toArray().sort(function(doc1, doc2) { 
    return doc1.a - doc2.a 
  }) 
});

Contra a classificação equivalente do lado do cliente:
db.scratch.find().toArray().sort(function(doc1, doc2) { 
  return doc1.a - doc2.b 
});