sorting - 使用已排序的数据获取不同的值

标签 sorting mongodb distinct-values

我需要一个查询来获取不同的键,并根据 Mongodb 中的分数进行排序 1.6.5

我有记录喜欢

{key ="SAGAR"
score =16
note ="test1"
}

{key ="VARPE"
score =17
note ="test1"
}

{key ="SAGAR"
score =16
note ="test2"
}

{key ="VARPE"
score =17
note ="test2"
}

我需要一个查询来对所有记录进行排序并返回不同的键.....

最佳答案

您可以使用聚合框架按您想要区分的元素进行分组(组使其与众不同)。因此,如果您希望按分数排序然后获得不同的键,您可以执行以下操作 - 按分数排序,按键分组并将分数添加为元素数组(已排序):

db.test.aggregate([
    { $sort : { score : -1 } },
    { $group : {_id : "$key", scores : { $push : "$score" } } }
])

这将产生不同的键以及分数数组,这些分数是包含在具有重复键的文档中的分数。我不确定这正是您正在寻找的东西,我知道这是一个老问题,但我认为这可能会帮助其他人在未来看到它 - 作为这样做的另一种方式。

关于sorting - 使用已排序的数据获取不同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4759437/

相关文章:

if-statement - 如果所有非空值都相同则返回值的公式,否则返回空?

mysql - 获取组中的不同计数以仅考虑最近的记录

mongodb - 如何使 MongoDB Upsert 真正幂等?

node.js - 在 MongoDB 中列出每个对话的最后一条消息,涉及一个用户

c++ - 在 C++ 中对范围(没有重复项)进行排序,std::vector 和 std::sort 是否比 std::set 更快?

mysql - 按关联模型中的列对 Rails 数据库表进行排序

mongodb - 如何使用 MongoDB 在一个集合中查找不在另一个集合中的项目

json - Postgres,从日期范围选择中每天获取唯一记录

javascript - 为什么排序时数组中会出现重复元素?

javascript - 如何根据每个数组中的某个项目对 Observable 数组进行排序