MongoDBは、distinctを使用したサーバー側の並べ替えをサポートしていません 指図。コンソールで何が起こっているのかというと、distinct('myKey') callは配列を返し、JavaScriptのsortを呼び出しています。 配列のソートされたバージョンを返すその配列のメソッド。 sortに渡すパラメータ 無視されます。
Javaで同等のことを行うには、次のようにします。
List myKeys = myCollection.distinct("myKey");
java.util.Collections.sort(myKeys);
サーバー側の並べ替えを使用して一意のキーを取得するには、aggregateを使用できます 。シェルでこれを行う方法は次のとおりです。
db.mycollection.aggregate([
{ $group: {_id: '$myKey' }},
{ $sort: {_id: 1}}
])
ただし、これをテストしたところ、単純なクライアント側の並べ替えアプローチの方がはるかに優れていました。