2017-10-20 3 views
1

私のアプリケーションでは変更ストリームを聞いてcouchdbドキュメントを後処理しています。シナリオは以下の通りです:couchdbで現在のドキュメントリビジョンの添付ファイルが最新であることを確認してください

  1. 私のアプリケーションは、文書が適切な添付ファイルを持っており、添付ファイルのrevposがある場合場合には、文書や小切手を取り出し
  2. /DB/_changes経由で文書が変更されてしまったことを通知しますdocument-revの最初の部分と同じです。たとえばrevが13-D2JDBS3のように見える場合は、文字列を- charに分割し、最初の一致を数字に変換して添付ファイルのrevposと比較します。
  3. 上記のチェックに失敗した場合は、PDFを生成してドキュメントに添付します。

これまでのところ、これはかなりうまくいきます。しかし、私はcouchdbの設計によってこれが意図的であるかどうか疑問に思っています。この動作に頼っても安全ですか?(revposは、それが属するリビジョンの最初の部分を反映していますか?)私はドキュメントでこれについて何も見つかりませんでした。

このトピックに関するご意見をお寄せいただきありがとうございます。

答えて

1

私はこれが意図的で、公開され、APIとして文書化されているようだと考えていますが、言葉遣いはおそらく何らかの明確化を使用する可能性があります。 Revisions documentation

彼らは言う:

リビジョン番号は、文書が更新されてしまった回数を表すN-接頭辞を持つ文書の輸送表現のMD5ハッシュです。

そして、彼らが言うAttachments documentation中:

revpos(数):添付ファイルが追加されましたリビジョン [重点彼等]

をそれは彼らが呼ぶことを少し残念です全体_rev識別子「改訂番号」は前者の文書では、後者の意図がハイグロちょうど "番号"のように "N"接頭辞。

これは、実際に保証するものであれば、revposが常に "N-プレフィックス"の "N"の部分であることを明確にするために、ドキュメントバグを提出することを検討することがあります。

+0

ドキュメントのヒントをありがとうございました! – domachine

関連する問題