最近,一家第三方公司开始通过CouchDB向我们提供数据,检索数据的责任就落到了我身上。当时,我在某处读到可以使用带有日期参数的 _changes 来检索更改。因此,我将日期和时间保存在一个文件中,认为我可以使用这些信息来下载新数据。然而,我最近发现这种方法不可行,除非文档本身包含日期。有没有什么方法,也许使用 rev 字段或其他方法,来获取基于该日期或该数据的lastseq?
我找到的解决方案是使用 _changes 再次下载所有文件,然后在新旧数据之间进行比较。这样,我可以捕获差异并开始使用最新生成的数据中的新的 Lastseq。但是,数据集相当大,大约 260 GB 或更多。
执行您已有的
_changes
计划,但没有 include_docs
,这样您就可以获得钥匙和 _rev
。然后,从您的 diff 中,您想要获取任何 key
,其 _rev
已从您已下载的数据中提前。然后,您可以将 POST /{db}/_all_docs 与 include_docs
一起使用,并仅传入 diff 中的文档键(即您知道已更改的文档键)。