我有以下问题:
我将URL存储在Couchdb中,其中包含一些附加信息,例如发布日期。我有一个视图,它返回发布日期小于 12 小时的所有 URL。
奇怪的是,我很惊讶它有效。即。在 24 小时不接触数据库后,当最后一个操作是运行"贬值"视图并返回一些 URL 时,下次调用此视图时,它不会返回任何项目。
我假设已经阅读了,视图不会在所有元素上运行,而只会运行自上次运行视图以来已更改或添加的元素。这就是为什么第二次运行视图通常比第一次更快的原因。
在我的示例中,文档从视图中"过期",如果没有进行编辑,我不会期望发生这种情况。
我哪里出错了?
的视图实现不依赖于文档外部的数据(如当前日期)...否则在 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