MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Driver Java MongoDB:distinto con ordinamento

MongoDB non supporta l'ordinamento lato server con distinct comando. Quello che sta succedendo nella console è che distinct('myKey') call restituisce un array e quindi stai chiamando JavaScript sort metodo su quell'array che restituisce una versione ordinata dell'array. I parametri che passi a sort vengono ignorati.

Per fare l'equivalente in Java dovresti fare:

List myKeys = myCollection.distinct("myKey");
java.util.Collections.sort(myKeys);

Per ottenere le chiavi univoche utilizzando un ordinamento lato server è possibile utilizzare aggregate . Ecco come lo faresti nella shell:

db.mycollection.aggregate([
    { $group: {_id: '$myKey' }},
    { $sort: {_id: 1}}
])

Tuttavia, quando l'ho testato, il semplice approccio di ordinamento lato client ha funzionato molto meglio.