沙发数据库日期和溢出
问题描述:
我需要使用CouchDB计算一个简单的任务。但我遇到了一些问题: 我无法正确转换Sate字符串表示中的时间戳。 这是我的我的功能:沙发数据库日期和溢出
function(doc) {
if (doc.temp > -50 && doc.temp < 50) {
var date = new Date(doc.time);
emit(date, doc.temp);
}
}
我需要组不同的事件在同一时刻发生。但是这个类生成一个空日期对象,我不明白为什么。
此外,计算平均值的reduce函数不工作,因为它进入溢出。
function(keys, values) {
return sum(values)/values.length;
}
我可以设法使第一功能工作,如果我改变这种形式:
function(doc) {
if (doc.temp > -50 && doc.temp < 50) {
emit(Math.round(doc.time/360000), doc.temp);
}
}
答
您减少功能不起作用,因为它不处理的原因再减少的情况下。
在您的缩小功能中,您可以在缩小功能中处理零件地图功能的结果。在这种情况下,rereduce参数为false。
您的还原功能还需要处理部分以前的还原调用的结果。在这种情况下,rereduce参数为true。
参见文档:http://wiki.apache.org/couchdb/Introduction_to_CouchDB_views#Reduce_vs_rereduce
查看此解决方案:http://tobyho.com/2009/10/07/taking-an-average-in-couchdb/ – 2013-02-15 21:34:22