在我的应用程序中,我通过监听更改流来后处理couchdb文档。方案如下:
revpos
是否等于document-rev的第一部分。例如,如果rev看起来像13-D2JDBS3
那么我将字符串拆分为-
字符,进行第一次匹配,将其转换为数字并将其与附件的revpos
进行比较到目前为止这项工作非常好。但我想知道这是否是由couchdb的设计故意的。依赖这种行为是否安全(revpos是否反映了它所属的修订的第一部分)?我在文档中找不到任何相关内容。
提前感谢您对此主题的任何暗示。
答案 0 :(得分:1)
我认为这是有意的,似乎是公开的,有记录的API,尽管措辞可能会有些澄清。
修订号是文档传输表示的MD5哈希,其中N前缀表示文档更新的次数。
他们在Attachments documentation说:
revpos(号码):添加附件后修订号码 [强调他们的]
有点不幸的是,他们将整个 _rev
标识符称为"修订号"在前面的文档中,因为很明显,后者的意图只是强调" N"前缀为" 号"。
您可以考虑在此处提交文档错误,要求他们澄清revpos始终是" N" " N前缀"的一部分如果这确实是他们愿意保证的东西。