我有一个看起来像这样的观点:
function(doc) {
if (doc.type === 'article' && (Date.parse(doc.published) < (Date.now() - 30 * 60 * 1000))) {
emit(doc._id, doc._rev);
}
}
视图基本上会发出过时的文章(例如{{已发布日期}}&lt; {{present - 30 minutes}}。
现在,问题如下:第一次读取后视图不会自动更新。第一次访问按预期在所有文档上构建视图。但此后似乎它只更新自己(删除,创建或更新新文档)。
然而,这是一个问题,而不是我想要的。 我有其他文章随着时间的推移而变得陈旧 因此我希望沙发也能回复这些文章,但由于它们没有被更改,所以它们不会出现在风景。
这,我刚刚描述的,似乎是期望的couchdb行为(?)。但是,有没有办法显示老化的艺术品呢?
PS:一种简单的测试方法是插入一个带有published = Date.now()和type =&#34; article&#34;并运行此视图。 30分钟后,您将看到文档根据视图定义实际上是陈旧的,但它不会显示在视图中。 30分钟只是一个数字。如果需要,可以将其缩小到较小的时间范围。在此先感谢您的帮助 !
答案 0 :(得分:0)
是的,这是设计的。视图索引仅在“创建更新”和“删除CRUD操作”部分时更新。
使用密钥完成Read过程中的动态过滤。
在你的情况下,你可能想要发出如下:
emit(doc.published, doc);
然后,在您对CouchDB的调用中,您将添加将在发布日期进一步过滤的参数。