是否可以在CouchDB验证函数中向文档添加字段?

Is it possible to add fields to a document in a CouchDB validation function?

本文关键字:文档 添加 字段 函数 CouchDB 验证 是否      更新时间:2023-09-26

在迁移到CouchDB的过程中丢失的一件事是为字段设置默认值的能力。例如,在SQL数据库中,可以有一个名为date的字段,默认值为now()。是否有可能在CouchDB中做类似的事情?

据我所知,在每次创建和更新操作中运行的唯一一段代码是设计文档的validate_doc_update方法。然而,当我们通过创建一个虚拟验证来测试它时,我们无法让它工作。下面是一个简单的验证函数,它尝试设置字段newDoc.foo,但它从未被保存。

function(newDoc, oldDoc, userCtr) {
    newDoc.foo = "bar!";
}

我们已经检查并验证了validate_doc_update方法正在被调用,因此,如果有一种方法可以自动向CouchDB文档添加字段,那么使用验证函数似乎不是一种方法。还有其他建议吗?

当你通过视图查看文档时,你可以使用一些视图逻辑来应用默认值。

你可以在它写完之后(也可能在随后的修改之后)给它应用一个更新处理程序,但这需要每次调用它。

我可能会解决这个问题,通过创建你要插入的文档作为一个对象之前,你插入它,并有默认值应用那里,所以你写到CouchDB已经是正确的