关于mongodb上限集合的困惑

时间:2013-04-08 22:09:05

标签: java mongodb collections statistics

我是mongodb的新手。这是一段代码:

MongoClient mongo = new MongoClient("localhost", 27017);
DB db = mongo.getDB("testdb");
DBCollection collection = db.getCollection("user");

对于db.getCollection("user"),如果有一个名为“user”的现有集合,它将返回此集合。如果“user”未退出,getCollection("user")将创建一个新集合。现在我想知道getCollection创建的集合类型。 getCollection是否会返回上限集合?

我已阅读mongodb手册:

  

您必须使用createCollection()方法明确创建上限集合。

这是否意味着getCollection创建的集合不是上限集合?

我也想知道:

  1. 32位系统上DBcollection的最大默认大小是多少?
  2. db中的最大集合数是多少?

2 个答案:

答案 0 :(得分:1)

除非通过您描述的技术(可以通过API或shell创建),否则MongoDB不会创建上限集合。

集合的最大默认大小? 32位系统上大约2GB。但是,10gen不推荐生产系统的32位构建(见这里)。

最大集合数稍微复杂一些,最好由documentation解释。

答案 1 :(得分:0)

Mongodb上限集合有很多限制,请参阅链接http://docs.mongodb.org/manual/core/capped-collections/。我会推荐TTL而不是有助于达到同样的目标。您可以在http://docs.mongodb.org/manual/tutorial/expire-data/找到有关TTL的更多信息。