我一直在寻找减少一组不断增长的mongo数据库大小的方法。我是mongodb的新手。我已经研究了执行此操作的各种方法,并认为以下代码可能是最简单的方法,而无需为特定数据库编写代码:
db = db.getSiblingDB("admin");
dbs = db.runCommand({ "listDatabases": 1 }).databases;
// Iterate through each database and get its collections.
dbs.forEach(function(database) {
db = db.getSiblingDB(database.name);
db.getCollectionNames().forEach(function (collectionName) {
print('Compacting: ' + collectionName);
db.runCommand({ compact: collectionName });
db.runCommand({ repairDatabase: 1 } );
});
});
但是,它可以在所有数据库上运行,因此我不确定运行是否有潜在危险?
答案 0 :(得分:1)
documentation提到,紧凑运行时备份是一个好主意,但是在Operation Termination之外,他们没有具体列出原因。
它还说它将在命令运行时阻止数据库的操作,因此在计划的维护时间之外执行此操作可能不是一个好主意。