0

我有以下问题:

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

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

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

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

我哪里错了?

4

1 回答 1

2

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

要获得发布时间少于 12 小时的 URL,您必须:

  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
    
于 2013-10-22T11:59:19.267 回答