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(所有现有行的总和)。

我多次更新了视图,但仍然没有得到正确的结果。

怎么了?

有帮助吗?

解决方案

这是错误的使用 Date.now() 在map(和reduce)函数中。Maps/reduce结果保存在磁盘上,以便在查询时快速检索。的价值 Date.now() 你得到的是地图构建的时间,而不是查询的时间。你可以找到一些关于CochDB地图如何在 维基权威指南.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top