function (doc) {
if(doc.jsonType == 'cart') {
if((Date.parse(doc.updated_at) + (15 * 60000)) >= Date.now()) {
for(item in doc.items) {
emit(item, doc.items[item].quantity);
}
}
}
}
使用此功能,我获得在过去15分钟内更新的文档,例如2,数量为1和2,这将导致3作为总和。但是,当我使用内置的reduce函数_sum时,我得到32(所有现有行的总和)。
我多次更新了视图,但仍未获得正确的结果。
怎么了?
答案 0 :(得分:2)
在map(和reduce)函数中使用Date.now()
是错误的。地图/缩小结果保存在磁盘上,以便在查询时快速检索。您获得的Date.now()
的值是地图生成时的值,而不是查询时的值。您可以找到一些关于CochDB地图如何在wiki和The Definitive Guide上工作的介绍性材料。