0

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

像这样的东西:

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

我喜欢这样的响应:

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

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

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

4

1 回答 1

2

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

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

如果要查询 _changes 端点并直接获取新插入的文档,可以使用方法 #1 并使用仅返回 status="new" 的文档的过滤器函数。

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

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

于 2017-10-04T15:21:50.370 回答