我有一个流程将类似下面的文档发布到CouchDB:
{
"timestamp": [2010, 8, 4, 9, 25, 24],
"type": "quote",
"bid": 95.0,
"offer": 96.5
}
许多此类文件在一天中发布,每次都适当地加上时间戳。
我想创建一个CouchDB视图,其中返回每天存储的最后一个引用。
我一直在阅读关于如何创建复杂视图的View Cookbook for SQL Jockeys,但是我很难看到如何组合map和reduce函数来实现所需的结果。地图功能很简单;这是我遇到麻烦的减少功能。
感激地收到任何指示。
答案 0 :(得分:2)
创建一个map-function,使用相同的键返回给定时间段内的所有文档。例如,使用键17返回当天17小时内的所有文档。
创建一个仅发出该小时最新出价的缩减功能。您的视图将返回24个文档,您的客户端代码将进行最终合并。
有很多方法可以实现这一目标。您可以通过从地图功能中发出单个密钥来检索单个最新出价,然后通过搜索所有出价来减少这一点,但我不确定这对于非常大的集合(例如您遇到的那些集合)将如何执行招标制度。