/ / ako nájsť a premenovať názov poľa v mongodb 3.2 - json, mongodb, mongodb-query

ako nájsť a premenovať názov poľa v mongodb 3.2 - json, mongodb, mongodb-query

Ako môžem premenovať názov poľa v MongoDB?

Chcem nahradiť všetky názvy polí, ktoré začínajú $ s &.

Vďaka!

odpovede:

0 pre odpoveď č. 1

Videl som nejaký odkaz a urobil som správne riešenie pre vás problém

Najprv musíte získať celý stĺpec, môžete to urobiť pomocou MapReduce:

mr = db.runCommand({
"mapreduce" : "my_collection",
"map" : function() {
for (var key in this) { emit(key, null); }
},
"reduce" : function(key, stuff) { return null; },
"out": "my_collection" + "_keys"
});

Potom postupujte zreteľne na výslednú zbierku tak, aby ste našli všetky kľúče:

columns = db[mr.result].distinct("_id")

Premenujte všetky zodpovedajúce stĺpce

columns.forEach(function(columnName) {
if (columnName.indexOf("$") == 0) {
var newColumnName = columnName.replace("$", "&");
rename_query = { "$rename": {} };
rename_query["$rename"][columnName] = newColumnName;
db.my_collection.updateMany({}, rename_query)
}
})

Referenčné odkazy sú

MongoDB Získajte mená všetkých kľúčov v zbierke

MongoDB $ premenujte premennú javascript pre názov kľúča