向现有mongodb集合添加压缩

时间:2015-05-15 13:56:48

标签: mongodb

是否可以将压缩添加到mongodb 3.x之前创建的现有集合中?如果是这样,怎么样?

我找到了一个如何使用压缩创建新集合的示例,但我还没有找到任何有关向现有集合添加压缩的策略。 http://www.mongodb.com/blog/post/new-compression-options-mongodb-30

2 个答案:

答案 0 :(得分:0)

3.x之前的版本MongoDB只有一个存储引擎 - MMAPv1 仍然不支持压缩。随着3.0 MongoDB引入了可插拔存储引擎,其中一个 - wiredTiger存储引擎支持压缩。

问题是您不能将使用一个存储引擎(例如MMAPv1)创建的数据文件与另一个存储引擎(例如wiredTiger)一起使用。

所以你唯一能做的就是mongodump,使用另一个数据目录(mongod--storageEngine wiredTiger初始化--dbpath,然后mongorestore到新的mongod实例。

答案 1 :(得分:-1)

有几种方法可以压缩mongodb集合。

1) repair collection using command "mongod --repair"
      or by running command "db.repairDatabase()"
2) using db.runCommand({ compact: <collection name> })