バケットのリストを取得する直接の方法はないと思います。バケットを明示的に指定する必要があるため、これはおそらく必要ではないため、一般的には、探しているものを知っているデータベースに移動します。
A多少クルージ的解決策は、それはおそらくあなたの誤解を招くような結果を与えるだろう、誰かがコレクション「.chunks」と「.files」のカップルにラベルを付けるために発生した場合、当然のことながら(コレクション名を調べることによって、このような何かを行うことです):
GridFS fs = new GridFS(db, "buck");
fs.createFile();
fs = new GridFS(db, "bucket");
fs.createFile();
fs = new GridFS(db, "test");
fs.createFile();
Set<String> colls = db.getCollectionNames();
for(String collName : colls) {
if(collName.endsWith(".chunks")) {
String potentialBucketName = collName.substring(0,collName.indexOf(".chunks"));
if(colls.contains(potentialBucketName+".files")) {
System.out.println(potentialBucketName + " is a bucket");
}
}
}
は結果を与える:
buck is a bucket
bucket is a bucket
test is a bucket
はい、これが唯一の選択肢であると思われます。それは今のところ役立ちます。ありがとう! –