MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

MongoDB-Java-Treiber:eindeutig mit sort

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.