mongoDB集合名以及数据属性大写转小写


 // 在nosqlbootster下执行
// 先生成各个集合keys 结合 不能通过findOne 来找 因为 第一条数据存在key 不全问题
db.getCollectionNames().forEach(function(collName) {
     if(collName.indexOf("_keys_wpf")<0){
      var mr = db.runCommand({		
			  "mapreduce" : collName,
			  "map" : function() {
				for (var key in this) { emit(key, null); }
			  },
			  "reduce" : function(key, stuff) { return null; }, 
			  "out": collName + "_keys_wpf"
			}) 
    }
})
// 再进行重命名操作,完成后将 keys集合删除掉
db.getCollectionNames().forEach(function(collName) {
    
     if(collName.indexOf("_keys_wpf")<0){
		var allKeys= db[collName+"_keys_wpf"].distinct("_id")
		allKeys.forEach(function(myKey){
		    var lowerName=  myKey.toLowerCase();
			if(myKey!==lowerName){
				 var renameOBj={}
				 renameOBj[myKey]=lowerName
				 db[collName].updateMany({},{$rename:renameOBj})
				}
			});
	  
		db[collName+"_keys_wpf"].drop()
		db[collName].renameCollection(collName.toLowerCase())
     }
})

你可能感兴趣的:(mongodb,数据库)