【问题标题】:Couchbase : List available Buckets, scopes and collection available in a Cluster with Java SDK 3Couchbase:使用 Java SDK 3 列出集群中可用的存储桶、范围和集合
【发布时间】:2020-11-12 07:51:33
【问题描述】:

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

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

非常感谢,

【问题讨论】:

    标签: java collections couchbase bucket scopes


    【解决方案1】:

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

    要访问范围/集合信息,首先从集群中获取一个存储桶。你可以调用bucket的collections()方法来获取bucket的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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-18
      • 1970-01-01
      • 2022-11-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-01
      相关资源
      最近更新 更多