MongoDB ne prend pas en charge le tri côté serveur avec le distinct
commande. Ce qui se passe dans la console, c'est que le distinct('myKey')
call renvoie un tableau, puis vous appelez le JavaScript sort
méthode sur ce tableau qui renvoie une version triée du tableau. Les paramètres que vous passez dans sort
sont ignorés.
Pour faire l'équivalent en Java vous feriez :
List myKeys = myCollection.distinct("myKey");
java.util.Collections.sort(myKeys);
Pour obtenir les clés uniques à l'aide d'un tri côté serveur, vous pouvez utiliser aggregate
. Voici comment procéder dans le shell :
db.mycollection.aggregate([
{ $group: {_id: '$myKey' }},
{ $sort: {_id: 1}}
])
Cependant, lorsque j'ai testé cela, l'approche de tri simple côté client a bien mieux fonctionné.