MongoDB ondersteunt geen server-side sorteren met de distinct
opdracht. Wat er in de console gebeurt, is dat de distinct('myKey')
call retourneert een array en dan roep je de JavaScript sort
. aan methode op die array die een gesorteerde versie van de array retourneert. De parameters die u doorgeeft aan sort
worden genegeerd.
Om het equivalent in Java te doen, zou u het volgende doen:
List myKeys = myCollection.distinct("myKey");
java.util.Collections.sort(myKeys);
Om de unieke sleutels te krijgen met behulp van een server-side sortering, zou je aggregate
kunnen gebruiken . Zo doe je dat in de shell:
db.mycollection.aggregate([
{ $group: {_id: '$myKey' }},
{ $sort: {_id: 1}}
])
Toen ik dit echter testte, presteerde de eenvoudige sorteerbenadering aan de clientzijde veel beter.