2
我正在爲MongoDB創建基於Web的查看器,並想列出GridFS中可用的存儲桶。除非獲取存儲桶名稱,否則我將無法列出存儲桶中包含的文件。我搜索了mongo-java文檔,但找不到獲取存儲桶名稱的任何API。有沒有可用的Java API或替代解決方案來獲取桶名稱列表?MongoDB:獲取GridFS中可用的桶列表?
我正在爲MongoDB創建基於Web的查看器,並想列出GridFS中可用的存儲桶。除非獲取存儲桶名稱,否則我將無法列出存儲桶中包含的文件。我搜索了mongo-java文檔,但找不到獲取存儲桶名稱的任何API。有沒有可用的Java API或替代解決方案來獲取桶名稱列表?MongoDB:獲取GridFS中可用的桶列表?
我不認爲有一個直接的方式來獲取桶列表。這可能不是必須的,因爲你必須明確指定桶,所以你通常進入數據庫知道要查找什麼。
一個有點古怪的解決方案是通過檢查集合名稱來做類似的事情(當然,如果有人碰巧標註了兩個集合「.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
是的,這似乎是唯一的選擇。它現在有幫助。謝謝 ! – 2012-03-14 11:19:00