视图中的 CouchDB 更改 API

CouchDB change API on view

假设我有一个文档 "schema",其中包含一个 show_from 字段,该字段包含作为 Unix 纪元的时间戳。然后,我创建了一个以此 show_from 日期为键的视图,并且只有 return 键在当前时间戳或之前的那些文档(根据请求)。因此文档将出现在视图 "passively" 中,而不是来自任何更新请求。

是否可以使用 CouchDB 更改 API 来监视此视图状态更改,或者我是否必须轮询视图以观察更改? (我的猜测是后者,因为变化API貌似只是更新触发的,但只是为了确认!)

_changes 提要可以 filtered 有多种方式。 过滤 _changes 提要的方法之一是重复使用 view's map function.

GET /[DB]/_changes?filter=_view&view=[DESIGN_DOC]/[VIEW_NAME]

注:

对于每个 _changes 请求,CouchDB 将查看每个更改并 运行 通过过滤器函数(或在本例中为视图的映射函数)。 None 缓存用于后续请求(如在 mapreduce 视图上)。所以它可能会占用大量资源,除非变更集很小。

对于大型数据集(有很多更改),bootstrap 视图可能很有用,并且只能增量跟踪更改。

附加信息:

使用 _changes 你可以轮询自给定序列点以来的变化,最新的 N 变化,等等。你也可以使用长轮询,或者连续喂养。只要要考虑(和过滤)的变更集很小,使用 _changes.

就有意义

但是如果视图本身是按时间顺序排列的,就像您的情况一样,使用更改可能毫无意义。查询视图即可。