Mapreduce 有时间限制的CouchDB视图

Mapreduce 有时间限制的CouchDB视图,mapreduce,couchdb,Mapreduce,Couchdb,我有以下问题: 我将URL存储在Couchdb中,并附带一些附加信息,如发布日期。我有一个视图,返回所有发布日期小于12小时的URL 奇怪的是,我很惊讶它能起作用。也就是说,在24小时不接触数据库后,当最后一个操作是运行“折旧”视图并返回一些URL时,下一次调用该视图时,它不会返回任何项目 我假设已经读到,视图并不是运行在所有元素上,而是只运行自上次运行视图以来已更改或添加的元素。这就是为什么第二次运行视图通常比第一次快的原因 在我的示例中,文档从视图中“过期”,如果没有进行编辑,我不希望发生这

我有以下问题:

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

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

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

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


哪里出错了?

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

要在12小时前发布URL,您必须:

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

  • 查询所需最早时间的索引:

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

  • 定义“工作”不会崩溃?是的,这正是我所想的,但它似乎没有崩溃。我(或者更确切地说,我被给出并正在测试的视图)依赖于当前时间作为发射的过滤器。我想让它打破来证明我的观点。
    GET /mydb/_design/myapp/myview?startkey=[2013,10,22,1,56]&include_docs=true