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

obter valores distintos com dados ordenados


Você pode usar a estrutura de agregação para agrupar pelo elemento que deseja que seja distinto (o grupo o torna distinto). Portanto, se você deseja classificar por pontuação, obtenha chaves distintas, você pode fazer o seguinte - classificar por pontuação, agrupar por chave e adicionar pontuação como matrizes de elementos (já classificados):
db.test.aggregate([
    { $sort : { score : -1 } },
    { $group : {_id : "$key", scores : { $push : "$score" } } }
])

Isso resultará em chaves distintas junto com uma matriz de pontuações que são as pontuações contidas nos documentos com chaves duplicadas. Não tenho certeza se é exatamente o que você está procurando e sei que essa é uma pergunta antiga, mas pensei que isso poderia ajudar alguém a olhar para isso no futuro - como uma maneira alternativa de fazer isso.