举例:
{
productName: 'Lost Series 67 DVD',
availableFrom: '19/May/2011',
availableTo: '19/Sep/2011'
}
Run Code Online (Sandbox Code Playgroud)
查看storeFront/currentAvailableProducts基本上检查当前日期时间是否在availableFrom - availableTo内并发出doc.
我想强制一个视图在每天凌晨1点重新生成,即处理/映射所有文档.
起初我有一个简单的python脚本通过crontab调度触及每个文档,因此导致新版本和视图更新,但是因为couchdb只是附加,这不是非常有效 - 即加载不必要的IO和磁盘空间使用后紧接着,在各方面都非常浪费资源.
第二个解决方案是通过couchapp push再次推送视图定义,但是这意味着视图在几分钟内不可用(或部分不可用),这也是不可接受的.
还有其他解决方案吗?
威尔的答案很棒; 但只是为了得到这里所代表的共识观点:
确定您的时间片大小,例如一天.
接下来,对于每个文档,您为每个可用的时间片(日)发出一次.因此,如果文档在5月19日至5月21日(含)之间可用,您的发射键将是:
"2011-05-19"
"2011-05-20"
"2011-05-21"
Run Code Online (Sandbox Code Playgroud)
一旦为每个文档计算出来,为了查找某一天可用的文档,只需查询视图(例如今天)?key="2011-05-18".
您永远不必更新或重新运行您的视图.
如果由于某种原因必须永远不会更改查询URL,则可以使用_show函数将302(临时)重定向到今天的正确查询.
| 归档时间: |
|
| 查看次数: |
927 次 |
| 最近记录: |