2016-11-25 103 views
1

编辑:这个问题不是关于vanilla MongoDB的show collections,而是关于mongo-hacker。查看接受的答案和评论。`show collections`返回的尺寸是多少?


使用蒙戈DB 3.2 + WiredTiger,show collections显示两种尺寸:S1/S2。

show collections 
coll_1    → 10.361MB/1.289MB 
coll_2    → 0.000MB/0.004MB 
coll_3    → 0.000MB/0.016MB 
coll_4    → 0.001MB/0.031MB 

我的猜测是,这些方式:

  • S1:在数据库
  • S2的文件的总大小:压缩后的数据库的磁盘大小(文档+索引)

这是正确的吗?我在docs找不到任何参考。

回答

4

您使用的是mongo-hacker吗?默认情况下,在MongoDB 3.2.11中,show collections根本不显示任何大小信息。

通过蒙戈黑客提供的尺寸信息是从db.collection.stats().size其输出显示了集合(无索引)的总未压缩的大小获得,并且db.collection.stats().storageSize这表明你的物理存储大小。如果您在WiredTiger中启用压缩,则storageSize通常会小于size

你可以在这里找到相关的源代码:https://github.com/TylerBrock/mongo-hacker/blob/0.0.13/hacks/show.js#L57-L72

+0

因此,这将是我定义为“文件的总大小”和“磁盘(文档+索引)的大小”。感谢您的源代码。它看起来很像这样。但是,我从来没有听说过mongo-hacker。我正在使用来自Mongo存储库的MongoDB Debian软件包。我们不是有相同的默认Mongo吗? –

+0

好吧,我明白了。我从我的同事那里复制了'.mongorc.js'以获得彩色外壳,并且恰好包含了mongo-hacker的东西。我不记得特别安装mongo-hacker,但显然它工作。谢谢。 –

+0

是的,mongo-hacker通过在主目录中创建.mongorc.js来工作。我想如果你复制了某人的.mongorc.js文件,你可能会“意外”使用mongo-hacker。请注意,您可以使用'mongo --norc'运行mongo shell来忽略rc文件。 –