在我的CouchDB数据库中,我希望所有文档在更改时都添加'updated_at'时间戳(并强制执行)。
validation
函数updates
函数将无法运行,除非它们被专门调用(因此可以更新文档而不调用特定的更新函数)我应该如何实施?
答案 0 :(得分:2)
如果不触发_update
处理程序,就无法执行此操作。这是跟踪文档更改时间的好主意,但它面临复制问题。
复制正在公共API上运行,这意味着:
答案 1 :(得分:0)
我可以建议一个解决方法 - 您可以创建一个视图,将当前日期作为键(或其一部分)发出:
function( doc ){
emit( new Date, null );
}
一旦视图生成被触发(这在首次请求之后发生),这将为所有文档分配当前日期,并将在特定文档的每次更新时重新分配新日期。
虽然以上内容可以解决您的问题,但我建议不要使用它,原因是 Kxepal 已经解释过:如果您在复制的网络上,每个节点都会分配自己的日期。因此,考虑到这一点,我建议的最好的方法是在客户端解决问题,并发布已嵌入日期的文档。