正文
await client.close();
console.log(
'已断开与 MongoDB 的连接'
);
}
}
function
generateReport(dbNames, reports, users) {
return
`
MongoDB 分析报告
=================
数据库数量:
${dbNames.length}
${reports.map((report) => `
数据库:
${report.dbName}
总集合数量:
${report.totalCollections}
总索引数量:
${report.totalIndexes}
TTL 索引信息:
------------
${report.ttlIndexStatements.map((info) => `
集合:
${info.collection}
字段:
${info.field}
过期时间:
${info.expireAfterSeconds}
秒
创建语句:
${info.createStatement}
删除语句:
${info.dropStatement}
`).join(
'\n'
) ||
'无 TTL 索引'
}.
`).join(
'\n'
)}
用户信息:
--------
${users.map(user => `
用户名:
${user.user}
@
${user.db}
角色:
${user.roles.map(role => role.role).join(', ') || '无角色'}
` ).join(
'\n'
)}
`;
}
analyzeMongoDB();
image
执行后,会产生对应的报告,其中包含多少数据库,每个库里面的有多少表,每个库里面有总的索引是多少。
因为在DTS双向同步的情况下,他们是不会建立用户的,也就是不会同步用户,这里就需要我们在写脚本来把用户建立的语句导出,然后在目的库,填写好密码后,在建立,这个工作的脚本我们下期来说。
整体前期的一些铺垫的工作还在进行,程序端还在测试,同时我们后期还要列出 mongodb 4.x 和 6.X之间的一些语句的差别等,方便开发了解。下期我们继续.......