Couchdb通过每个更改通知获取已更改的文档

时间:2017-10-04 11:36:52

标签: view couchdb change-notification

我非常确定我希望通过沙发数据库中的每次插入来通知插入的文档。

类似的东西:

https://internalsite.company.com/embed/secure/iframe/...

我喜欢回复如下:

http://localhost:5058/db-name/_chnages/_view/inserted-document

重新连接到数据库以通过每个通知提供实际文档可能会导致性能问题。

我可以定义一个按每次更改返回实际文档的视图吗?

1 个答案:

答案 0 :(得分:2)

有三种可能的方法来定义是否刚刚添加了文档:

  1. 您可以为文档添加状态字段,其中包含新文档的特定状态。
  2. 如果修订以1-开头,但如果您进行复制,则根据this不是100%准确。
  3. 在更改响应中,检查文档的修订数是否等于1。如果是这样,这意味着它刚刚被添加(最佳解决方案IMO)
  4. 如果要查询_changes端点并直接获取新插入的文档,可以使用方法#1并使用仅返回status =“new”的文档的过滤器函数。

    否则,您应该采用方法#3并在本地过滤_changes响应。例如:您的应用程序将收到所有更改,并且只处理版本数量等于1的文档。

    正如您所提到的,您希望接收文档,而不仅仅是_id和_rev。为此,您只需添加查询参数:include_docs=true