gpt4 book ai didi

erlang - CouchDB如何计算修订号

转载 作者:行者123 更新时间:2023-12-01 23:19:25 25 4
gpt4 key购买 nike

我试图了解 CouchDB 如何计算文档的修订 ID。我从源代码中注意到它是由这里的这段代码计算的:

couch_util:md5(term_to_binary([Deleted, OldStart, OldRev, Body, Atts2]))

And I know that if I create a new empty document with no attachments, CouchDB always gives it a revision of 1-967a00dff5e02add41819138abb3284d which, in decimal is <<150,122,0,223,245,224,42,221,65,129,145,56,171,179,40,77>> .

但是,如果我在 erlang 提示符中输入以下内容(false 表示已删除,0 表示 OldStart,0 表示 OldRev,正文为空且没有附件):

erlang:md5(term_to_binary([false, 0, 0, [], []])).                   

我总是得到

<<26,196,244,40,211,149,193,185,214,6,230,61,54,138,62,132>>

返回。

那么我在这里做错了什么 - 我怎样才能算出沙发生成的实际修订版?

最佳答案

阅读 Emit Tuples From Erlang Views In CouchDB 的答案后我意识到我做错的不是将 body 的空 proplist 包装在元组中。我不确定为什么 couch 会这样做,但这就是问题所在。

erlang:md5(term_to_binary([false, 0, 0, {[]}, []])).

给出正确答案

<<150,122,0,223,245,224,42,221,65,129,145,56,171,179,40,77>>

关于erlang - CouchDB如何计算修订号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5954864/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com