MongoDB stöder inte sortering på serversidan med distinct
kommando. Vad som händer i konsolen är att distinct('myKey')
call returnerar en array och sedan anropar du JavaScript sort
metod på den arrayen som returnerar en sorterad version av arrayen. Parametrarna du skickar till sort
ignoreras.
För att göra motsvarande i Java skulle du göra:
List myKeys = myCollection.distinct("myKey");
java.util.Collections.sort(myKeys);
För att få de unika nycklarna med hjälp av en sortering på serversidan kan du använda aggregate
. Så här gör du det i skalet:
db.mycollection.aggregate([
{ $group: {_id: '$myKey' }},
{ $sort: {_id: 1}}
])
Men när jag testade detta fungerade den enkla metoden för sortering på klientsidan mycket bättre.