mongodb - Mongo DB 集合紧凑

标签 mongodb compact-database

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

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

最佳答案

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

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

关于mongodb - Mongo DB 集合紧凑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51819231/

相关文章:

ms-access - 数据库压缩和归档 - MS Access 后端

c++ - 以编程方式压缩和修复数据库

.net - 使用 .Net 4.0/4.5 的嵌入式数据库的最佳选择

java - spring data mongodb findByIdIn

c# - 是否有 Rob Conery 的 Massive for NoSQL (MongoDB) 的等价物?

node.js - 蒙戈错误: E11000 duplicate key error index

javascript - Mongoose 填充一批数组

mysql - 该操作系统不支持指定的区域设置。 [LCID=-1]

ms-access - 防止 Autoexec 宏在压缩和修复后运行

node.js - 使用 Node.js 导入/导出 MongoDB