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}}
])
ただし、これをテストしたところ、単純なクライアント側の並べ替えアプローチの方がはるかに優れていました。