使用CouchDB聚合数据会降低功能

时间:2010-08-04 08:30:49

标签: couchdb

我有一个流程将类似下面的文档发布到CouchDB:

{
    "timestamp": [2010, 8, 4, 9, 25, 24],
    "type": "quote",
    "bid": 95.0,
    "offer": 96.5
}

许多此类文件在一天中发布,每次都适当地加上时间戳。

我想创建一个CouchDB视图,其中返回每天存储的最后一个引用

我一直在阅读关于如何创建复杂视图的View Cookbook for SQL Jockeys,但是我很难看到如何组合map和reduce函数来实现所需的结果。地图功能很简单;这是我遇到麻烦的减少功能。

感激地收到任何指示。

1 个答案:

答案 0 :(得分:2)

创建一个map-function,使用相同的键返回给定时间段内的所有文档。例如,使用键17返回当天17小时内的所有文档。

创建一个仅发出该小时最新出价的缩减功能。您的视图将返回24个文档,您的客户端代码将进行最终合并。

有很多方法可以实现这一目标。您可以通过从地图功能中发出单个密钥来检索单个最新出价,然后通过搜索所有出价来减少这一点,但我不确定这对于非常大的集合(例如您遇到的那些集合)将如何执行招标制度。

更新

http://wiki.apache.org/couchdb/View_Snippets#Computing_simple_summary_statistics_.28min.2Cmax.2Cmean.2Cstandard_deviation.29