MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Pilote Java MongoDB :distinct avec sort

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é.