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