2
迁移到CouchDB时丢失的一件事是能够为字段设置默认值。例如,在SQL数据库中,可以有一个名为date
的字段,默认为now()
。是否有可能在CouchDB中做类似的事情?是否可以将字段添加到CouchDB验证功能中的文档?
从我所知道的情况来看,在每次创建和更新操作时运行的唯一一段代码是设计文档的validate_doc_update
方法。但是,当我们通过创建虚拟验证来测试它时,我们无法实现它。这里有一个简单的验证功能,试图设置字段newDoc.foo
,但它永远不会被保存。
function(newDoc, oldDoc, userCtr) {
newDoc.foo = "bar!";
}
我们已经检查和验证,该方法validate_doc_update
获取调用,所以才出现,如果有一种方法来自动字段添加到CouchDB文档,使用验证功能不是要走的路。还有其他建议吗?
在最近的CouchDB版本中[不允许在视图中修改文档](http://web.archiveorange.com/archive/v/oW6DzLPEoEfysNJMyaLk)。 – 2011-04-29 17:36:14
感谢您提供更新处理程序的提示。精心设计的更新处理程序可以完全像创建和更新文档的正常机制,同时还添加其他字段(如创建日期)。另外,通过将它们放入更新函数中,它们在复制后不会再次运行。 – Pridkett 2011-05-12 17:04:03