sql >> Base de Datos >  >> NoSQL >> MongoDB

Controlador MongoDB Java:distinto con ordenación

MongoDB no admite la clasificación del lado del servidor con distinct dominio. Lo que sucede en la consola es que distinct('myKey') la llamada devuelve una matriz y luego está llamando a JavaScript sort método en esa matriz que devuelve una versión ordenada de la matriz. Los parámetros que pasas a sort se ignoran.

Para hacer el equivalente en Java harías:

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

Para obtener las claves únicas utilizando una ordenación del lado del servidor, puede usar aggregate . Así es como harías eso en el shell:

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

Sin embargo, cuando probé esto, el enfoque de clasificación simple del lado del cliente funcionó mucho mejor.