Mongolab“超出配额”,尽管我几乎没有达到最大允许大小的一半

Cyb*_*ish 5 mongodb node.js express

我正在为比赛的业余项目运行沙盒数据库。这是我第一次这样做,但我犯了一个错误,那就是等到一切完成后再将要通过MapReduce操作分析的所有记录上传到数据库中。

问题:我想我可能已经搞砸了,因为我完全明白了,但是当我几乎没有达到最大允许大小的一半(即500MB,并且我有320MB的收藏夹和7KB的收藏夹)时,我开始得到“超出配额”错误,代码12501。这是什么?

请帮我,这是明天

统计:http : //i.imgur.com/r58nIgg.png文件大小似乎接近500MB,但这已经有一段时间了,并且仍然可以上传,我认为这是某种分配的空间。我不能使用他们声称免费提供的整个磁盘空间有何意义?

Ale*_*lex 3

MongoDB 预分配数据文件并可能预分配日志文件。您可以通过禁用日志文件来减少此空间,但在生产系统上不建议这样做。

您可以通过运行compact命令来减小数据库文件的大小:

db.runCommand ( { compact: '<collection>' } )
Run Code Online (Sandbox Code Playgroud)

您可以按如下方式禁用日志文件:

在 MongoDB 配置文件中添加以下行:

smallfiles=true
Run Code Online (Sandbox Code Playgroud)

然后关闭 MongoDB 并使用以下步骤删除日志文件:

sudo cp -p /etc/mongodb.conf /etc/mongodb.conf.orig
sudo vi /etc/mongodb.conf
sudo service mongodb stop
sudo rm -rf /var/lib/mongodb/journal/*
sudo service mongodb start
Run Code Online (Sandbox Code Playgroud)

mongodb 启动时会重新创建 /var/lib/mongodb/journal/ 中的所有文件。