couchdb更改通知

couchdb更改通知,couchdb,Couchdb,API的更改实际上是做什么的?是否列出了每个文件的最后修订版+已删除的文件 或者这样说: couchdb的更改通知功能是否可以用于列出与查询匹配的所有文档 例如,如果我有过滤器功能: search = function(doc,req) { return (doc.min && doc.max && doc.min < req.query.q && doc.max > req.query.q) } search=功能(doc,re

API的更改实际上是做什么的?是否列出了每个文件的最后修订版+已删除的文件

或者这样说:

couchdb的更改通知功能是否可以用于列出与查询匹配的所有文档

例如,如果我有过滤器功能:

search = function(doc,req)
{
  return (doc.min && doc.max && doc.min < req.query.q && doc.max > req.query.q)
}
search=功能(doc,req)
{
返回(doc.min&&doc.max&&doc.minreq.query.q)
}
我会在这里获得所有匹配doc.min http://server/database/\u更改?filter=doctype/search&q=somevalue


对于我的测试数据库来说似乎是这样的,但是如果我有一个大型数据库呢?

对数据库的每次写入都会给出一个称为
seqnum
。(或序列号)这些写入的日志与文档
\u id
\u rev
以及其他有关写入的信息一起存储。(请参阅CouchDB联机丛书的部分)新创建的文档将获得下一个
seqnum
(旧的seqnum+1)。另一方面,文档更新也会附加新的
seqnum
,但也会从日志中删除文档的旧文档。如果您列出按
seqnum
排序的所有文档,您将得到数据演变的时间线

调用
\u changes
API检索该列表。由于每个修订都保存在它的整体中(而不仅仅是变化的增量),因此您可以重建数据库中自特定的
seqnum
以来发生变化的所有内容


运行压缩将删除旧文档修订,但不会影响seqnum或_更改数据。这是因为“更改”仅显示文档的最新(实时)版本。

+1回答得好。我冒昧地澄清了压缩点,然后我对您最初的介绍进行了更新,这让我有些激动。希望您不介意。这样数据库中的所有文档(及其最新版本号)都将在列表中(以及已删除的文档)?正确,并且在运行压缩之前,您仍然可以使用有效的
\u rev
编号检索已删除的文档。谢谢!我只需要运行我在所有现有文档上定义的筛选函数。我想我把事情弄清楚了:)多米尼克,你能帮我找回刚刚删除的文件吗?我得到了{“_id”:“25efa4ec8489d8b89b34c5cad6000059”,“_rev”:“3-a982bd6dccce8f405433f8453ab86880”,“_deleted”:true},但我想得到它的内容,但rev=2在_更改日志中不可用。