MongoDB上限集合的大小不对吗?

时间:2014-07-21 08:01:56

标签: mongodb capped-collections

我有一个上限集合。当我调用stats()时,我得到以下输出:

/* 0 */
{
    "ns" : "log_db.access_logs",
    "count" : 42088,
    "size" : 13602632,
    "avgObjSize" : 323,
    "storageSize" : 100003840,
    "numExtents" : 1,
    "nindexes" : 2,
    "lastExtentSize" : 100003840,
    "paddingFactor" : 1,
    "systemFlags" : 1,
    "userFlags" : 0,
    "totalIndexSize" : 3932656,
    "indexSizes" : {
        "_id_" : 1389920,
        "apikey_1_ts_1" : 2542736
    },
    "capped" : true,
    "max" : NumberLong(9223372036854775807),
    "ok" : 1
}

我不知道'max'参数显示的是什么。我使用db.runCommand('convertToCapped'...)构造创建了这个集合,我把'size'参数设置为1亿。但是这里没有提到它(大小)

有人可以在这里解释'max'字段的含义,以及如何找到上限集合的正确大小。

1 个答案:

答案 0 :(得分:1)

我有一次这个确切的问题,因为它不在文档中,这是我从10gen(MongoDB Inc)员工mongodb capped collection is not using all available space得到的答案:

  

max属性是封顶集合中允许的(可选)最大文档数(请参阅db.createCollection())。如果未指定最大值,则将其设置为MAXINT(在您的示例中,为已签名的Int64的最大正值)。由于封顶集合的空间始终是预分配的,因此大小限制优先于最大文档数。