首页 > 解决方案 > MongoDB:上限集合中的最大文档数

问题描述

我正在使用一个上限集合,我将最大大小定义为512000000(512MB)

stats() 说(在 1 次插入之后)size:55, storageSize:16384:。

假设所有文档的大小相同,我可以存储多少个文档?

512000000 / 55还是512000000 / 16384

标签: mongodb

解决方案


对于有上限的集合,它是maxSize / avgObjSize. 如果您的文档大小相同,那么它实际上是maxSize / size.

您可以使用更小更易于管理的数字来验证这一点:

// create a capped collection with maxSize of 1024
> db.createCollection('test', {capped: true, size: 1024})

// insert one document to get an initial size
> db.test.insert({a:0})
> db.test.stats().size
33

// with similar documents, the collection should contain 1024/33 ~= 31 documents
// so let's insert 100 to make sure it's full
> for(i=1; i<100; i++) { db.test.insert({a:i}) }

> db.test.stats()
{
    "ns" : "test.test",
    "size" : 1023,
    "count" : 31,
    "avgObjSize" : 33,
    "storageSize" : 36864,
    "capped" : true,
    "max" : -1,
    "maxSize" : 1024,
....

所以从上面的实验来看count,即使我们插入了 100 个文档,也是 31 个。

使用您的数字,您的上限集合中的最大文档数将为 512000000 / 55 ~= 9,309,090 个文档。


推荐阅读