gpt4 book ai didi

couchdb - 如何在 CouchDB 文档中插入自动递增/连续数值?

转载 作者:行者123 更新时间:2023-12-02 18:40:50 24 4
gpt4 key购买 nike

我目前正在使用 couchDB 并有以下场景:我正在实现一个问题跟踪器。要求是每个问题文档(除了它的文档 _id 之外)都有一个唯一的数字序列号,以便以更合适的方式引用它。

我的第一个方法是拥有一个仅返回当前存储的唯一问题文档计数的 View 。在客户端将该值增加 1,将其分配给我的新问题并将其插入。当使用 ajax 调用插入多个问题或让多个客户端同时添加问题时,结果证明这是一个坏主意。在后一种情况下,如果没有客户端之间的通信,这是不可能的。

理想情况下,我希望在沙发上生成序列号,但由于分布式系统中的状态冲突,这是不可能的。

是否有任何好的模式可以使用(也许在客户端)来解决这个问题?我觉得这是一种标准的用例(考虑发票号码等)。

提前致谢!

最佳答案

您可以使用一个单独的空文档,尽管它仅包含 idrevrev 前缀始终是整数,因此您可以将其用作自动递增数字。

只需对您的文档进行 POST,这将增加 rev 并返回它。然后您可以将生成的值用于您的目的。

替代方式:

创建一个单独的文档,由valuelock组成。然后执行类似以下内容:“IF lock == true THEN return ELSE set lock = true ANDincrease by 1”,然后执行 GET 来检索新的 value 并最后设置 lock = false .

关于couchdb - 如何在 CouchDB 文档中插入自动递增/连续数值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26689899/

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