如何从Couchbase存储桶中获取最后插入的Counter_id?

时间:2018-07-06 08:13:49

标签: java couchbase n1ql

如何从Couchbase存储桶中获取最后插入的Counter_id?这样我就可以从最后插入的id + 1开始增加值。我正在使用Couchbase java-client 2.5.5。

1 个答案:

答案 0 :(得分:1)

要在存储在测试存储区中的文档中选择counter_id字段的最高当前值,可以运行此N1QL查询。

SELECT MAX(counter_id) FROM test

然后将值加1。

问题在于,如果由于查询的交错而根本没有任何现实的并发性,那么这样做将无法正常进行。在这种情况下,如果您只需要唯一值,则建议您使用UUID,它们很可能是唯一的。我相信Java具有某种用于生成UUID的库;它拥有其他一切。

如果您想从N1QL本身内部生成UUID(),也可以使用UUID()函数来完成。

https://developer.couchbase.com/documentation/server/current/n1ql/n1ql-language-reference/metafun.html

或者,您可以使用对帐单文件,如下所述: https://blog.couchbase.com/using-autonumber-in-couchbase/