MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

mongoose/mongodb benutzerdefinierte Sortierung

Vielleicht möchten Sie db.eval verwenden wenn Sie entschlossen sind, dies auf der Datenbankseite zu tun.

Aus einer anderen Frage extrahierte Antwort:

Ich glaube nicht, dass dies direkt möglich ist; die sort-Dokumentation erwähnt sicherlich keine Möglichkeit, eine benutzerdefinierte Vergleichsfunktion bereitzustellen.

Wahrscheinlich ist es am besten, die Sortierung im Client durchzuführen, aber wenn Sie wirklich entschlossen sind, dies auf dem Server zu tun, können Sie vielleicht db.eval() verwenden zu veranlassen, dass die Sortierung auf dem Server ausgeführt wird (falls Ihr Client dies unterstützt).

Serverseitige Sortierung:

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

Verglichen mit der entsprechenden clientseitigen Sortierung:

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