使用CouchDB reduce函数聚合数据

使用CouchDB reduce函数聚合数据,couchdb,Couchdb,我有一个将类似于以下文件的文件发布到CouchDB的流程: { "timestamp": [2010, 8, 4, 9, 25, 24], "type": "quote", "bid": 95.0, "offer": 96.5 } 许多这样的文件都是在一天内发布的,每个文件都有适当的时间戳 我想创建一个CouchDB视图,它返回每天存储的最后一个报价 我一直在读关于如何创建复杂视图的书,但是我很难看到如何组合map和reduce函数来实现期望的结果。地图功能简单

我有一个将类似于以下文件的文件发布到CouchDB的流程:

{
    "timestamp": [2010, 8, 4, 9, 25, 24],
    "type": "quote",
    "bid": 95.0,
    "offer": 96.5
}
许多这样的文件都是在一天内发布的,每个文件都有适当的时间戳

我想创建一个CouchDB视图,它返回每天存储的最后一个报价

我一直在读关于如何创建复杂视图的书,但是我很难看到如何组合map和reduce函数来实现期望的结果。地图功能简单;这是我遇到麻烦的reduce函数


感激地收到任何指针。

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

创建一个reduce函数,该函数只发出该小时的最新出价。视图将返回24个文档,客户端代码将执行最终合并

有很多方法可以实现这一点。您可以通过从map函数发出一个键来检索一个最新的出价,然后通过搜索所有出价来减少这个值,但我不确定这对于非常大的出价集(例如您在竞标系统中遇到的那些出价集)将如何执行

更新