java - Couchbase:使用 Java SDK 3 列出集群中可用的存储桶、范围和集合
问题描述
在 Java 应用程序上工作,我想列出所有可用的存储桶/范围和可供用户选择的集合。这是使用 Couchbase Java SDK 3.0 编写的
我没有在网上找到任何资源。
非常感谢,
解决方案
Cluster 有一个buckets()
返回 BucketManager 的方法。您可以使用此管理器获取存储桶名称到存储桶信息的映射。如果您只想要名称,请从此地图的键集中获取它们。
要访问范围/集合信息,首先从集群中获取一个存储桶。你可以调用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
如果服务器不支持集合,则会抛出此代码。
推荐阅读
- reactjs - React Js + Laravel 路由到 web 或 api?
- sockets - C:服务器/客户端套接字程序 - 客户端错误连接
- excel - Excel Formula - Lookup , Index Match Sumifs combination to find the first occurence
- javascript - 销毁和对象,客户端
- c# - Azure Function C# - Http Trigger throws System.Web.Extensions could not be found
- r - 当负索引可能是整数(0)时,如何安全地从向量中删除任何内容?
- php - 如何在PHP中获取给定日期的时间前格式?
- r - 在 R 中调整图形大小闪亮
- reactjs - 我的 Axios 调用返回 404 错误,React/Express
- php - How to Reference File Two Directories Up, in Current File in PHP