【问题标题】:Mongo DB Collection CompactMongodb 合集精简版
【发布时间】:2019-01-20 00:01:26
【问题描述】:

我一直在寻找一种方法来减小一组不断增长的 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 } ); 
    }); 
}); 

但是,它运行在所有数据库上,所以我不确定运行它是否有潜在危险?

【问题讨论】:

    标签: mongodb compact-database


    【解决方案1】:

    documentation 提到在运行 compact 时进行备份可能是个好主意,但在Operation Termination 之外,他们没有具体列出原因。

    它还说它会在命令运行时阻止对数据库的操作,因此在计划的维护时间之外执行此操作可能不是一个好主意。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-01-06
      • 1970-01-01
      • 1970-01-01
      • 2014-09-14
      • 1970-01-01
      • 1970-01-01
      • 2011-12-13
      相关资源
      最近更新 更多