java - Couchbase : List available Buckets, 范围和集合可在具有 Java SDK 3 的集群中使用

标签 java collections couchbase bucket scopes

在 Java 应用程序上工作时,我想列出所有可用的存储桶/范围和集合可供用户选择。这是使用 Couchbase Java SDK 3.0 编写的

我在网络上没有找到任何资源。

非常感谢,

最佳答案

集群有一个 buckets()返回 BucketManager 的方法。您可以使用此管理器获取存储桶名称到存储桶信息的映射。如果您只需要名称,请从该 map 的键集中获取它们。

要访问范围/集合信息,首先从集群中获取一个存储桶。您可以调用该存储桶的 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

关于java - Couchbase : List available Buckets, 范围和集合可在具有 Java SDK 3 的集群中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64791639/

相关文章:

java - 我想在 android 中点击某些文本时从时间选择器获取时间

java - 如何将整数数组转换为数组列表和链表?

spring-boot - 如何在更新文档后使 Couchbase 缓存失效

couchbase - 新手查询 - couchbase 用户帐户?

couchbase - 有没有办法从 couchbase View 返回所有数据

java - if 语句会是什么样子

Java:访问字符串列表作为 InputStream

java - Spring Boot - 如何创建不同 JpaRepository 接口(interface)的工厂

objective-c - Objective-C 中是否存在强类型集合?

java - 为什么在ArrayList的构造中需要将类型转换为Object数组?