在java中创建一个mongodb上限集合

时间:2012-06-27 15:01:49

标签: mongodb-java

我想从Java代码创建一个上限集合。我找到了通过JavaScript创建它的语法,但找不到Java的示例。

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 ?????? */
    }
}

2 个答案:

答案 0 :(得分:13)

使用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);
    }
}

答案 1 :(得分:0)

使用更新的Java mongo驱动程序(例如3.4),创建应该稍有变化:

CreateCollectionOptions opts = new CreateCollectionOptions().capped(true).sizeInBytes(1024*1024);
database.createCollection("test", opts);

请注意,createCollection没有返回任何值。