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

问题描述:

我很确定我希望通过插入的文档通过沙发数据库中的每个插入通知。Couchdb获取每个更改通知的更改文档

是这样的:

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

而且我喜欢的反应是类似以下内容:

{ 
    "id":"0552065465", 
    "name":"james" 
    . 
    . 
    . 
} 

重新连接到数据库的每个通知给实际的文件可能会导致性能问题。

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

+0

只是要清楚,您希望仅接受来自新文档插入的更改?或者,您想要查看特定文档的更改吗? –

+0

@AlexisCôté:我想要插入“DOCUMENT”。而不是插入文档的“Id”和“rev”。 – Mohsen

有3种可能的方式,如果刚刚添加的文档定义:

  1. 你的状态字段添加到您的文档与新文档特定的状态。
  2. 如果修订以1-开头,但如果您执行复制,则根据this它不是100%准确。
  3. 在更改响应中,检查文档的修订版本号是否等于1。如果是这样,这意味着它只是加入(最佳解决方案IMO)

如果你要查询的_changes终点,并直接获得新插入的文件,您可以使用方法#1和使用过滤功能,只有返回status =“new”的文档。

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

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