排序集合并将排名值分配给多列上的文档(MongoDB)

时间:2014-03-25 13:31:21

标签: mongodb sorting rank

我有一系列看起来像这样的文件:

[{ id : 1, a : 123, b : 342, name : 'test'}, { id : 2, a : 23, b : 32, name : 'another'}]

我正在尝试对列a进行排序,然后在每个文档中添加另一列,其中包含每个值的排名(允许绑定并取平均值)。看起来我应该使用MongoDB聚合框架,但我无法弄清楚如何排序,然后将排名分配给另一列。最后我应该最终得到:

[
    { id : 1, a : 123, b : 32, name : 'test', aRank : 1, bRank : 1.5}, 
    { id : 2, a : 23, b : 32, name : 'another', aRank : 2, bRank : 1.5}
]

有任何帮助吗?谢谢

1 个答案:

答案 0 :(得分:0)

因为没有给出答案 - 与搜索没有任何关系。我构建了一个npm模块,它为数字列上的任何js数组提供标准和小数排名。

我从来没有想过用mongodb中的聚合做到这一点的方法,但这个解决方案对我来说效果很好。

npm模块:https://www.npmjs.org/package/rank.js