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