MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

ordinamento personalizzato mangusta/mongodb

Potresti voler usare db.eval se sei determinato a farlo sul lato database.

Risposta estratta da un'altra domanda:

Non penso che questo sia possibile direttamente; il sortdocumentation certamente non menziona alcun modo per fornire una funzione di confronto personalizzata.

Probabilmente è meglio eseguire l'ordinamento nel client, ma se sei davvero determinato a farlo sul server potresti essere in grado di utilizzare db.eval() per organizzare l'esecuzione dell'ordinamento sul server (se il tuo client lo supporta).

Ordinamento lato server:

db.eval(function() { 
  return db.scratch.find().toArray().sort(function(doc1, doc2) { 
    return doc1.a - doc2.a 
  }) 
});

Rispetto all'ordinamento lato client equivalente:

db.scratch.find().toArray().sort(function(doc1, doc2) { 
  return doc1.a - doc2.b 
});