RavenZZ
7/5/2016 - 11:32 AM

根据Mongodb已有索引生成 建立索引脚本

根据Mongodb已有索引生成 建立索引脚本

nohup mongo --eval "var url='127.0.0.1:27017/taskcenter';"   /usr/local/mongoshell/gen.js  > allindex.js &

var db = connect(url);

var collections = db.getCollectionNames();

collections.forEach((table)=>{
    var commands = [];
    var indexes = db[table].getIndexes();
    
    if(indexes.length>0){
        print(`//collection: ${table}`)
    }
    
    indexes.forEach((index)=>{
        if(index.name!="_id_"){
         
            var keys = JSON.stringify(index.key);
            var options = {};
            Object.keys(index).forEach((k)=>{
                if(["v","key","ns"].indexOf(k)==-1){
                    options[k] = index[k];
                }
            })
            var paramsString = JSON.stringify(options)
            
            var cmd = `db.${table}.ensureIndex(${keys},${paramsString});`
            print(cmd);
        }
    });
    print("\n");
})

print("\n");
print("end");