我目前在使用couchDB,有以下情况: 我正在实施问题跟踪器。要求是每个问题文件(除了文件_id外)都有一个唯一的数字序号,以便以更恰当的方式引用它。如何在CouchDB文档中插入自动递增/序列号值?
我的第一种方法是有一个视图,它只是返回当前存储的唯一问题文档的计数。将客户端的该值增加1,将其分配给我的新问题并插入该问题。 在使用ajax调用插入多个问题或让多个客户端同时添加问题时,结果不妙。在后一种情况下,如果客户之间没有沟通,甚至是不可能的。
理想情况下,我想要在沙发上生成序列号,由于分布式系统中的冲突状态,这是不可能的。
有什么好的模式,可以使用(也许在客户端)来处理?我觉得这是一种标准的用例(考虑发票号码等)。
在此先感谢!
这实际上是一个好主意......去尝试一下。 – Markus 2014-11-05 17:11:52
不幸的是,您的第一条建议无效,因为沙发需要在更新文档时发送修订ID。这是为了确保客户端拥有最新版本的文档,所以我需要首先获取文档以获取最新版本。 – Markus 2014-11-06 07:28:54
我有种替代方式。但是我没有使用文档来锁定数字的提取。相反,我使用了一些应用程序逻辑和沙发的能力来批量插入足以满足我的用例的文档。不过,我接受了你的答案,因为这似乎是正确的选择。 – Markus 2014-11-08 20:01:38