sql >> Database >  >> NoSQL >> MongoDB

mangoest/mongoest aangepaste sortering

Misschien wilt u db.eval . gebruiken als je vastbesloten bent om dit aan de database-kant te doen.

Antwoord geëxtraheerd uit een andere vraag:

Ik denk niet dat dit direct mogelijk is; de sortdocumentatie vermeldt zeker geen manier om een ​​aangepaste vergelijkingsfunctie te bieden.

Je kunt het sorteren waarschijnlijk het beste in de client doen, maar als je echt vastbesloten bent om het op de server te doen, kun je misschien db.eval() gebruiken om de sortering op de server uit te voeren (als uw cliënt dit ondersteunt).

Server-side sorteren:

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

Vergeleken met de equivalente sortering aan de clientzijde:

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


  1. Hoe Robomongo te verbinden met MongoDB

  2. Ontvang een melding voor gewijzigde documenten in mongodb

  3. Logboekregistratie inschakelen voor Mongoose en het MongoDB Node.JS-stuurprogramma

  4. Redis als unieke atomaire id-generator - Thread veilige manier voor web-app om race-omstandigheden te voorkomen