如何在CouchDB 2上创建“验证文档更新”?

use*_*240 3 couchdb couchdb-2.0

我已经阅读了有关可以在CouchDB上创建的验证(validate_doc_update)的信息,但是我没有弄清楚如何创建它们。我可以通过Fauxton吗?

Databases -> "mydb" -> Design Documents -> New Doc
Run Code Online (Sandbox Code Playgroud)

是这样吗 我必须将函数声明为字符串吗?我需要一个示例(文档中有任何分步说明)。

谢谢。

use*_*240 5

我想通了。这是逐步的:

通过福克斯

导航至:数据库-> [在此处选择数据库名称]->所有文档->新文档,然后使用下面的JSON样板在文本区域中填写所需的验证,然后单击保存

{
  "_id": "_design/my_validation_name",
  "validate_doc_update": "function(newDoc, oldDoc, userCtx) {throw({forbidden : 'not able now!'});}"
}
Run Code Online (Sandbox Code Playgroud)

通过卷曲

curl -X PUT http://127.0.0.1:5984/my_database/_design/my_validation_name -d '{"validate_doc_update": "function(newDoc, oldDoc, userCtx) { throw({forbidden: \"not able now!\" });}"}'
Run Code Online (Sandbox Code Playgroud)

重要说明: DocID必须以“ _design /”为前缀,并且函数的键必须为“ validate_doc_update”。注意该函数为字符串。

验证集之后,如果我们尝试创建文档,则必须看到错误“无法立即显示!”。

curl -X PUT http://127.0.0.1:5984/my_database/foo -d '{"foo" : "bar"}'
# {"error":"forbidden","reason":"not able now!"}
Run Code Online (Sandbox Code Playgroud)