检查附件是否与couchdb中的当前文档版本保持一致

检查附件是否与couchdb中的当前文档版本保持一致,couchdb,Couchdb,在我的应用程序中,我通过监听更改流来对couchdb文档进行后处理。情况如下: 我的应用程序通过/db/\u changes收到文档被更改的通知 它获取文档并检查文档是否有适当的附件,以及附件的revpos是否等于文档rev的第一部分。例如,如果rev看起来像13-D2JDBS3,那么我在-字符处拆分字符串,获取第一个匹配项,将其转换为一个数字,并将其与附件的revpos进行比较 如果上述检查失败,我将生成一个PDF并将其附加到文档中 到目前为止,效果相当不错。但我想知道couchdb的设计是否

在我的应用程序中,我通过监听更改流来对couchdb文档进行后处理。情况如下:

  • 我的应用程序通过/db/\u changes收到文档被更改的通知
  • 它获取文档并检查文档是否有适当的附件,以及附件的
    revpos
    是否等于文档rev的第一部分。例如,如果rev看起来像
    13-D2JDBS3
    ,那么我在
    -
    字符处拆分字符串,获取第一个匹配项,将其转换为一个数字,并将其与附件的
    revpos
    进行比较
  • 如果上述检查失败,我将生成一个PDF并将其附加到文档中
  • 到目前为止,效果相当不错。但我想知道couchdb的设计是否有意这么做。依赖此行为是否安全(revpos反映了其所属修订的第一部分)?我在文件里找不到这方面的任何信息


    提前感谢您对本主题的任何提示。

    我认为这是有意的,似乎是公开的和有文档记录的API,尽管措辞可能需要一些澄清

    他们说:

    修订号是文档传输表示的MD5散列,其前缀为N,表示文档更新的次数

    他们说:

    revpos(编号):添加附件时的修订编号[强调]

    有点遗憾的是,在前一个文档中,他们将整个
    \u rev
    标识符称为“修订号”,因为后者的意图似乎很清楚,只是将“N”前缀突出显示为“编号”


    你可以考虑提交一个文档错误,要求他们澄清RevPOS永远是“n-前缀”的“N”部分,如果这确实是他们愿意保证的。

    非常感谢文档提示!