导出mongo索引

今天使用mongoshake工具同步mongodb
发现索引不能同步,所以找了一个同步索引脚本

在源库执行这个脚本

var collectionList = db.getCollectionNames();
for(var index in collectionList){
    var collection = collectionList[index];
    var cur = db.getCollection(collection).getIndexes();
    if(cur.length == 1){
        continue;
    }
    for(var index1 in cur){
    var next = cur[index1];
    if(next["key"]["_id"] == '1'){
        continue;
    }
    print(
    "try{ db.getCollection(\""+collection+"\").ensureIndex("+JSON.stringify(next.key)+",{background:1, unique:" + (next.unique || false) + "" + (next.expireAfterSeconds > 0 ? ", expireAfterSeconds :" + next.expireAfterSeconds  : "") + " })}catch(e){print(e)}")}}

结果如图

mongodb 生成同步索引脚本_第1张图片

在目标库执行查出的结果

try{ db.getCollection("mongodb_log").ensureIndex({"@timestamp":1,"ip":1},{background:1, unique:false })}catch(e){print(e)}
try{ db.getCollection("mycat").ensureIndex({"@timestamp":1,"ip":1},{background:1, unique:false })}catch(e){print(e)}
try{ db.getColle
......
try{ db.getCollection("test").ensureIndex({"uid":-1},{background:1, unique:false })}catch(e){print(e)}

mongodb 生成同步索引脚本_第2张图片

不能白漂,感谢杨、怼怼 和 popsidelee
转载至
https://blog.csdn.net/qq_22956867/article/details/102917841
https://blog.csdn.net/badyting/article/details/84753790