MongoDB nie obsługuje sortowania po stronie serwera za pomocą distinct Komenda. To, co dzieje się w konsoli, polega na tym, że distinct('myKey') call zwraca tablicę, a następnie wywołujesz JavaScript sort metoda na tej tablicy, która zwraca posortowaną wersję tablicy. Parametry, które przekazujesz do sort są ignorowane.
Aby zrobić odpowiednik w Javie, powinieneś zrobić:
List myKeys = myCollection.distinct("myKey");
java.util.Collections.sort(myKeys);
Aby uzyskać unikalne klucze za pomocą sortowania po stronie serwera, możesz użyć aggregate . Oto jak można to zrobić w powłoce:
db.mycollection.aggregate([
{ $group: {_id: '$myKey' }},
{ $sort: {_id: 1}}
])
Jednak kiedy to testowałem, proste podejście sortowania po stronie klienta działało znacznie lepiej.