MongoDB unterstützt keine serverseitige Sortierung mit distinct
Befehl. Was in der Konsole passiert ist, dass die distinct('myKey')
call gibt ein Array zurück und dann rufen Sie das JavaScript sort
auf -Methode auf diesem Array, die eine sortierte Version des Arrays zurückgibt. Die Parameter übergeben Sie an sort
werden ignoriert.
Um das Äquivalent in Java zu tun, würden Sie Folgendes tun:
List myKeys = myCollection.distinct("myKey");
java.util.Collections.sort(myKeys);
Um die eindeutigen Schlüssel mit einer serverseitigen Sortierung zu erhalten, können Sie aggregate
verwenden . So würden Sie das in der Shell machen:
db.mycollection.aggregate([
{ $group: {_id: '$myKey' }},
{ $sort: {_id: 1}}
])
Als ich dies jedoch getestet habe, schnitt der einfache clientseitige Sortieransatz viel besser ab.