View CouchDB按值分组,日期范围

View CouchDB按值分组,日期范围,view,couchdb,View,Couchdb,我在CouchDB实例中有一堆文档,其中包含以下数据: { "_id": "[string based ID generated by CouchDB]", "action": "view", "group": [Integer representing a group number], "date": [Javascript timestamp] } 我可以使用以下方法按组和操作对数据进行分组,并获得每组操作的总数: function(doc) { emi

我在CouchDB实例中有一堆文档,其中包含以下数据:

{
    "_id": "[string based ID generated by CouchDB]",
    "action": "view",
    "group": [Integer representing a group number],
    "date": [Javascript timestamp]
}
我可以使用以下方法按组和操作对数据进行分组,并获得每组操作的总数:

function(doc) {
  emit([doc.group, doc.action], [1, 1]);
}
(reduce只是
\u sum

问题是,这会从所有组中获取数据,而我只希望从单个组(例如,从组1)获取数据

另外,我知道我可以这样做来按日期过滤,但是我如何将它与上面的方法结合起来以按日期和组ID过滤呢

function(doc) {
    var then = new Date(Date.parse(doc['Event Date']));
    var fatalities = 0;
    if (doc['Total Fatal Injuries']!="") {
        fatalities = parseInt(doc['Total Fatal Injuries']);
    }
    emit([then.getFullYear(), then.getMonth()], [1, fatalities]);
}
(来自)

谢谢

我认为您的map()和reduce()函数已经正确了,只需将
reduce=true&group\u level=1&startkey=[]&endkey=[.toString()+“a”]
传递到视图即可

至于按日期过滤,您可以使用相同的策略。使用组级别,您可以看到每年和每月的总和。

是的,就是这样——我需要将开始键和结束键指定为相同的组ID,并在结束键中使用
{}
为所有其他键指定“一切”。