CouchDB - 带日期键的排行榜视图

时间:2014-12-23 19:36:30

标签: mapreduce couchdb

我有一个CouchDB数据库,其中每个文档代表某个特定时间由特定玩家在游戏中得分的一个点。我需要在任意日期范围内有效地生成玩家的排行榜及其总分,按分数排序。通过日期 - 玩家视图来总计得分总是很容易,但我不能对分数进行排序,因为它是降价值的一部分,而不是关键。

有没有办法在单个视图中执行此操作?如果没有,有什么办法可以做到吗?

我想过可能会使用按日期得分的玩家视图生成中间文档,并使用第二个视图按分数排序。但是AFAIK,CouchDB没有任何方便的方法来从视图生成文档,或者从其他视图中获取视图。而这只适用于固定的日期范围,而不适用于任意日期范围。

1 个答案:

答案 0 :(得分:2)

“Chained MapReduce”在Apache CouchDB 1.x中没有出现。它已经是functional in Cloudant's forkscheduled for integration in Apache CouchDB 2.x

implement it by hand有一些方法。但是,如果您只是需要对排行榜进行排序,那将是一种过度杀伤。

使用MapReduce按日期和用户分组进行选择。并让客户按分数排序。