sql >> Databasteknik >  >> NoSQL >> MongoDB

mongoose/mongodb anpassad sortering

Du kanske vill använda db.eval om du är fast besluten att göra detta på databassidan.

Svaret hämtat från en annan fråga:

Jag tror inte att detta är möjligt direkt; sortdokumentationen nämner verkligen inte något sätt att tillhandahålla en anpassad jämförelsefunktion.

Du är förmodligen bäst av att göra sorteringen i klienten, men om du verkligen är fast besluten att göra det på servern kanske du kan användadb.eval() för att ordna att sorteringen körs på servern (om din klient stöder det).

Sortering på serversidan:

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

I motsats till motsvarande sortering på klientsidan:

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


  1. Fastställande av den bästa arkitekturen för en MongoDB-klusterinstallation

  2. Konfigurera Redis Session State på Azure

  3. mongodb TTL tar inte bort dokument

  4. TypeError:db.collection är inte en funktion