4

我想从 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 ?????? */
    }
}
4

2 回答 2

14

使用 DB.createCollection 操作,然后指定一个已封顶的 DBObject作为参数。然后,您可以指定sizemax以控制字节大小和最大文档数。MongoDB 站点有一个关于上限集合的教程,它解释了所有选项,但缺少每个驱动程序的示例。

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);
    }
}
于 2012-06-27T15:01:49.363 回答
0

使用更新的 java mongo 驱动程序(即 3.4),创建应该略有变化:

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

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

于 2019-06-06T08:22:19.660 回答