我有以下问题:
我将URL存储在Couchdb中,并附带一些其他信息,例如发布日期。我有一个视图,返回发布日期少于12小时的所有URL。
奇怪的是,我很惊讶它有效。 IE浏览器。在没有触及数据库24小时后,当最后一个操作是运行“折旧”视图并返回一些URL时,下次调用它时它不会返回任何项目。
我假设已经读过,视图没有在所有元素上运行,只有那些自上次运行视图以来已经更改或添加的视图。这就是为什么第二次运行视图通常比第一次更快的原因。
在我的视图中文档“过期”的示例中,如果没有进行编辑,我不会发生这种情况。
我哪里错了?
答案 0 :(得分:2)
请确保您的视图实现不依赖于文档之外的数据(如当前日期)......或者CouchDB中实现的缓存机制将完全被破坏。
要发布不到12小时的网址,您必须:
生成发布日期的索引(date
可排序,如[2013,10,22,13,54]
):
function(o) {
emit(o.date, null);
}
从最古老的时间查询索引:
GET /mydb/_design/myapp/myview?startkey=[2013,10,22,1,56]&include_docs=true