标签:tco dal 防止 路径 port 通过 tor 执行命令 ring
写mongo shell的js脚本可参考官方文档https://docs.mongodb.com/manual/tutorial/write-scripts-for-the-mongo-shell
// 当前脚本名为exportImportIndexes.js
let joinStr = "*_*";
// 查询所有表的索引
function findAllIndexes() {
// 获取所有表
let allCollections = db.getCollectionNames();
for (var colName of allCollections) {
let indexes = db.getCollection(colName).getIndexes();
// 输出表索引信息
print(colName, joinStr, JSON.stringify(indexes));
}
}
// 添加所有表的索引
// 前提是通过findAllIndexes函数将所有表的索引写入了当前执行路径下的all_indexes.txt文件
function addAllIndexes() {
// 获取所有索引,一行代表一张表的索引
let indexes = cat(‘./all_indexes.txt‘);
lines = indexes.split(‘\n‘);
// 遍历所有表的索引
for (var line of lines) {
print("line:", line);
let items = line.split(joinStr);
if (items.length !== 2) {
continue
}
let colName = items[0].trim();
let indexes = items[1].trim();
if (indexes === "") {
continue
}
for (var index of JSON.parse(indexes)) {
print("begin add collectionName:", colName, "index:", JSON.stringify(index));
// 一次只创建一个索引,防止批量创建索引过程中的错误可能导致多个索引创建失败
let rs = db.runCommand(
{
createIndexes: colName,
indexes: [index]
}
);
print("operation result:", JSON.stringify(rs),"\n");
}
print("\n");
}
}
// 导出索引执行findAllIndexes
// findAllIndexes();
// 导入索引执行addAllIndexes
// addAllIndexes();
假设要导出的mongodb地址是localhost:27011,db是test1
要导入的mongodb地址是localhost:27012,db是test2
标签:tco dal 防止 路径 port 通过 tor 执行命令 ring
原文地址:https://www.cnblogs.com/fireyun/p/14285566.html