MongoDB understøtter ikke sortering på serversiden med distinct
kommando. Det, der sker i konsollen, er, at distinct('myKey')
call returnerer et array, og så kalder du JavaScript sort
metode på det array, som returnerer en sorteret version af arrayet. De parametre, du sender til sort
ignoreres.
For at gøre det tilsvarende i Java skal du gøre:
List myKeys = myCollection.distinct("myKey");
java.util.Collections.sort(myKeys);
For at få de unikke nøgler ved hjælp af en sortering på serversiden kan du bruge aggregate
. Sådan gør du det i skallen:
db.mycollection.aggregate([
{ $group: {_id: '$myKey' }},
{ $sort: {_id: 1}}
])
Men da jeg testede dette, klarede den simple klient-side-sorteringstilgang meget bedre.