Ruby 跟踪哪个用户编辑了CouchDB文档

Ruby 跟踪哪个用户编辑了CouchDB文档,ruby,couchdb,couchrest,Ruby,Couchdb,Couchrest,我使用couchrest_模型与ruby中的CouchDB进行交互。我在一个数据库中有一堆文档,每个文档都添加了一个键“updated_by”,我想保存有关做出更改并生成修订的用户的信息 这样做对吗 如果这是正确的方法,我应该如何使用couchrest_模型,以便我可以请求用户数据以及我的主数据库 谢谢 唯一的方法是通过equaluserCtx.namevalue思想强制updated\u by字段: 此功能将控制所有文档(设计文档除外)的内容,要求它们以您期望的方式拥有数据 此时您可以停止,但

我使用couchrest_模型与ruby中的CouchDB进行交互。我在一个数据库中有一堆文档,每个文档都添加了一个键“updated_by”,我想保存有关做出更改并生成修订的用户的信息

这样做对吗

如果这是正确的方法,我应该如何使用couchrest_模型,以便我可以请求用户数据以及我的主数据库


谢谢

唯一的方法是通过equal
userCtx.name
value思想强制
updated\u by
字段:

此功能将控制所有文档(设计文档除外)的内容,要求它们以您期望的方式拥有数据

此时您可以停止,但他有一个缺陷:您的所有客户都必须手动设置此字段。这很尴尬,不能让他们“放松”。为了解决这个问题,CouchDB提供了一种方法,允许在服务器端设置部分业务逻辑,从客户端实现中删除这些知识。因此,您的更新功能可能如下所示:

function(doc, req){
   if (!doc){ // new doc
     doc = JSON.parse(req.body);
   }
   doc.updated_by = req.userCtx.name;
   return [doc, {"json": {"status": "ok"}}
}
他让您以正确的方式设置由字段更新的
。此外,您可以通过添加越来越多的元字段(例如,
userCtx.peer
hold client IP address)来扩展此功能,如果您的客户端将使用此功能,则不需要对您的元数据进行任何更新


但是请注意,您需要为服务用户提供一些例外情况,否则您将在CouchDB节点之间获得中断的复制,因为验证函数将拒绝所有与用户名不同的文档,这些文档通过
值更新。

唯一的方法是通过等于
userCtx.name
值来强制
更新
字段思想:

此功能将控制所有文档(设计文档除外)的内容,要求它们以您期望的方式拥有数据

此时您可以停止,但他有一个缺陷:您的所有客户都必须手动设置此字段。这很尴尬,不能让他们“放松”。为了解决这个问题,CouchDB提供了一种方法,允许在服务器端设置部分业务逻辑,从客户端实现中删除这些知识。因此,您的更新功能可能如下所示:

function(doc, req){
   if (!doc){ // new doc
     doc = JSON.parse(req.body);
   }
   doc.updated_by = req.userCtx.name;
   return [doc, {"json": {"status": "ok"}}
}
他让您以正确的方式设置由字段更新的
。此外,您可以通过添加越来越多的元字段(例如,
userCtx.peer
hold client IP address)来扩展此功能,如果您的客户端将使用此功能,则不需要对您的元数据进行任何更新


但请注意,您需要为服务用户提供一些例外情况,否则您将在CouchDB节点之间获得中断的复制,因为验证功能将拒绝所有与用户名不同的文档,这些文档将通过
值更新。

我恐怕不太懂您的意思-我对CrouchDB很陌生!恐怕我不太明白你的意思——我对克劳奇DB还是个新手!