2013-04-08 80 views
0

我是mongodb的新手。下面的代码片段:关于mongodb capped collection的混淆

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

db.getCollection("user"),如果有一个名为“用户”现有的集合,它会返回这个集合。如果“用户”不退出,getCollection("user")将创建一个新的集合。现在我想知道getCollection创建什么类型的收藏。 getCollection是否返回封顶集合?

我看过的MongoDB手册:

您必须创建显式使用createCollection()方法封顶集合。

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

另外我想知道:

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

回答

1

除了通过您描述的技术(它可以通过API或shell创建)之外,MongoDB不会创建封顶集合。

集合的最大默认大小? 32位系统上大约2GB。但是,10gen不推荐生产系统的32位版本(请参见此处)。

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

+0

Thx。另外我想知道Mongodb在硬盘或内存中存储数据的位置? – 2013-04-11 05:11:51

+0

@li' - 绝对是磁盘。 http://docs.mongodb.org/manual/core/capped-collections/ – WiredPrairie 2013-04-11 10:39:02