CouchDB查看时间限制

时间:2013-10-22 09:53:48

标签: mapreduce couchdb

我有以下问题:

我将URL存储在Couchdb中,并附带一些其他信息,例如发布日期。我有一个视图,返回发布日期少于12小时的所有URL。

奇怪的是,我很惊讶它有效。 IE浏览器。在没有触及数据库24小时后,当最后一个操作是运行“折旧”视图并返回一些URL时,下次调用它时它不会返回任何项目。

我假设已经读过,视图没有在所有元素上运行,只有那些自上次运行视图以来已经更改或添加的视图。这就是为什么第二次运行视图通常比第一次更快的原因。

在我的视图中文档“过期”的示例中,如果没有进行编辑,我不会发生这种情况。

我哪里错了?

1 个答案:

答案 0 :(得分:2)

请确保您的视图实现不依赖于文档之外的数据(如当前日期)......或者CouchDB中实现的缓存机制将完全被破坏。

要发布不到12小时的网址,您必须:

  1. 生成发布日期的索引(date可排序,如[2013,10,22,13,54]):

    function(o) {
      emit(o.date, null);
    }
    
  2. 从最古老的时间查询索引:

    GET /mydb/_design/myapp/myview?startkey=[2013,10,22,1,56]&include_docs=true