MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Driver Java MongoDB:distinto com classificação


O MongoDB não oferece suporte à classificação do lado do servidor com o distinct comando. O que está acontecendo no console é que o distinct('myKey') call retorna um array e então você está chamando o JavaScript sort método nessa matriz que retorna uma versão classificada da matriz. Os parâmetros que você passa para sort são ignorados.

Para fazer o equivalente em Java você faria:
List myKeys = myCollection.distinct("myKey");
java.util.Collections.sort(myKeys);

Para obter as chaves exclusivas usando uma classificação do lado do servidor, você pode usar aggregate . Veja como você faria isso no shell:
db.mycollection.aggregate([
    { $group: {_id: '$myKey' }},
    { $sort: {_id: 1}}
])

No entanto, quando testei isso, a abordagem simples de classificação do lado do cliente teve um desempenho muito melhor.