O MongoDB não oferece suporte à classificação do lado do servidor com o
distinct
comando. O que está acontecendo no console é que o distinct('myKey')
call retorna um array e então você está chamando o JavaScript sort
método nessa matriz que retorna uma versão classificada da matriz. Os parâmetros que você passa para sort
são ignorados. Para fazer o equivalente em Java você faria:
List myKeys = myCollection.distinct("myKey");
java.util.Collections.sort(myKeys);
Para obter as chaves exclusivas usando uma classificação do lado do servidor, você pode usar
aggregate
. Veja como você faria isso no shell:db.mycollection.aggregate([
{ $group: {_id: '$myKey' }},
{ $sort: {_id: 1}}
])
No entanto, quando testei isso, a abordagem simples de classificação do lado do cliente teve um desempenho muito melhor.