如何解决Couchbase:列出具有Java SDK 3的群集中可用的存储桶,范围和集合
在Java应用程序上工作,我想列出所有可供用户选择的可用存储桶/作用域和集合。这是使用Couchbase Java SDK 3.0编写的。
我在网上找不到任何资源。
非常感谢,
解决方法
集群具有一个buckets()
方法,该方法返回BucketManager。您可以使用此管理器获取存储桶名称到存储桶信息的映射。如果只需要名称,请从此地图的键集中获取它们。
要访问范围/集合信息,请首先从集群中获取存储桶。您可以调用存储桶的collections()
方法来获取存储桶的CollectionManager。从那里您可以获取所有范围,并查询每个范围以找出其中包含的集合。
Cluster cluster = Cluster.connect("localhost","Administrator","password");
cluster.waitUntilReady(Duration.ofSeconds(10));
BucketManager bucketManager = cluster.buckets();
Set<String> bucketNames = bucketManager.getAllBuckets().keySet();
for (String bucketName : bucketNames) {
Bucket bucket = cluster.bucket(bucketName);
System.out.println("Bucket: " + bucketName);
CollectionManager collectionManager = bucket.collections();
for (ScopeSpec scope : collectionManager.getAllScopes()) {
System.out.println(" Scope: " + scope.name());
for (CollectionSpec collection : scope.collections()) {
System.out.println(" Collection: " + collection.name());
}
}
}
如果服务器不支持集合,则此代码将引发FeatureNotAvailableException
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。