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.