View CouchDB按值分组,日期范围
我在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
{
"_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,并在结束键中使用{}
为所有其他键指定“一切”。