在文档更新处理程序中获取文档



是否可以在couchdb中的文档更新处理程序中查询(获取)文档?

我已经在Couchdb 2.0中写了一个简单的文档更新处理程序,以接受第三方的帖子(认知类型)。这很好,我从他们的JSON有效载荷中获取ID,并将其用作Doc _id。

然后,您可以在Cognitoforms中指定"更新" URI,因此我可以创建一个新的更新处理程序或使用相同的处理程序。但是,在认知类型中:

  • 更新执行帖子,而不是put
  • 似乎没有一种发送任何查询参数的方法

作为需要更新的文档的ID,我可以使用它来查询文档数据库,获取_rev,然后用_id和_id和_rev返回有效载荷以执行更新。但是,我根本不知道我是否可以在更新处理程序中进行此类查询。我觉得我要么缺少明显的东西,要么有一个很好的理由让我不允许这样做。

非常感谢

编辑:我应该补充一点,我知道我可以在转发到couchdb之前创建一个小型应用程序来解析请求,但是我很想看看我是否可以在couchdb中实现此请求,只是了解我可以在没有其他情况的情况下获得多远层!

在您的特殊情况下,很难做到这一点。文档更新处理程序基本上是一个纯函数,可以获取所需的数据并返回响应,但是它无法接触到数据库。

如果将DOC ID添加到URL中,则更新函数从数据库中获取DOC作为参数。有关更新功能的详细信息,请参见CouchDB文档。

进入可能解决方案的方法是在CouchDB中使用重写以从身体中提取ID。在Couchdb 2.0中,已引入了一种重写的新方法。

用于推动极限,使用重写功能为此听起来很有趣。但是对于生产用例,创建一个小节点的应用程序可能更容易,更可维护。

最新更新