【发布时间】:2018-07-06 08:13:49
【问题描述】:
如何从 Couchbase 存储桶中获取最后插入的 Counter_id ?这样我就可以从最后插入的 id + 1 中增加一个值。我使用的是 Couchbase java-client 2.5.5。
【问题讨论】:
-
我不知道
couchbase,但我认为有自动增量或等价物。
如何从 Couchbase 存储桶中获取最后插入的 Counter_id ?这样我就可以从最后插入的 id + 1 中增加一个值。我使用的是 Couchbase java-client 2.5.5。
【问题讨论】:
couchbase,但我认为有自动增量或等价物。
要选择存储在测试桶中的文档中字段 counter_id 的当前最高值,您可以运行此 N1QL 查询。
SELECT MAX(counter_id) FROM test
然后将值加 1。
问题在于,如果由于查询交错而存在任何实际并发,那么这样做将无法正常工作。在这种情况下,如果您只需要唯一值,我建议您使用 UUID,它很有可能是唯一的。我相信 Java 有某种用于生成 UUID 的库;它拥有其他一切。
如果您想从 N1QL 内部生成 UUID(),您也可以使用 UUID() 函数来执行此操作。
或者,您可以使用抗辩文件,如下所述: https://blog.couchbase.com/using-autonumber-in-couchbase/
【讨论】:
select * from test use keys "counter_id"。