couchdb更改通知

Alu*_*mni 3 couchdb

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

或者这样说:

可以使用couchdb的更改通知功能列出与查询匹配的所有文档吗?

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

search = function(doc,req)
{
  return (doc.min && doc.max && doc.min < req.query.q && doc.max > req.query.q)
}
Run Code Online (Sandbox Code Playgroud)

我会在这里获得与doc.min <somevalue <doc.max匹配的所有文件吗?

http:// server/database/_changes?filter = doctype/search&q = somevalue

对于我的测试数据库,它似乎是这样,但如果我有一个大型数据库怎么办?

Dom*_*nes 11

每次写入数据库都会被称为a seqnum.(或序列号)这些写入的日志被存储与文档_id,_rev,除上述关于写的其他信息.(参见CouchDB在线书籍的这一部分.)新创建的文档获得下一个seqnum(旧的seqnum + 1).另一方面,文档更新还会附加新seqnum文档,但也会从日志中删除文档的旧文档.如果列出所有订购的文档seqnum,则会得到数据演变的时间表.

调用_changesAPI会检索该列表.并且由于每个修订都保存在它的整体中(不仅仅是更改的增量),因此您可以重建自该特定数据库以来该数据库中已更改的所有内容seqnum.

运行压缩会删除旧的文档修订,但不会影响seqnum或_changes数据.这是因为_changes仅显示文档的最新(实时)修订版.

  • +1好答案.我冒昧地澄清了压实点,然后我对你的初始介绍进行了一些更新.希望你不介意. (2认同)