2012-06-27 31 views
2

我想從Java代碼創建一個capped集合。我找到了通過JavaScript創建它的語法,但找不到Java的示例。在java中創建一個mongodb capped集合

Mongo mongo = new Mongo("127.0.0.1"); 
DB db = mongo.getDB("mydbid"); 

DBCollection collection; 
if (db.collectionExists("mycollection")) { 
     collection = db.getCollection("mycollection"); 
    } else { 
     collection = /* ????? Create the collection ?????? */ 
    } 
} 

回答

11

使用DB.createCollection操作,然後指定具有上限作爲參數DBOBJECT。然後,您可以指定大小max以控制文件的字節大小和最大數量。 MongoDB站點上有一個tutorial上限集合,它解釋了所有選項,但缺少每個驅動程序的示例。

Mongo mongo = new Mongo("127.0.0.1"); 
DB db = mongo.getDB("mydbid"); 

DBCollection collection; 
if (db.collectionExists("mycollection")) { 
     collection = db.getCollection("mycollection"); 
    } else { 
     DBObject options = BasicDBObjectBuilder.start().add("capped", true).add("size", 2000000000l).get(); 
     collection = db.createCollection("mycollection", options); 
    } 
} 
+0

感謝您的答案,但我想知道是否有任何其他方法,而不是使用其他方法,否則這個問題呢? –

+0

if/else僅當您收集不存在時纔可以進行動態創建。如果封頂集合是在其使用之前創建的,那麼您只需要代碼示例的** else **部分。 –