我有点笨,在 MongoDB 中创建了一个集合,键名中有空格:
{
"_id" : ObjectId("5065f84d00ea10c01e00003f"),
"DateTime" : ISODate("2012-09-27T15:19:00Z"),
"Port Name" : "CL3-J",
"Port Number" : "40",
"Avg I/O /sec" : "2024.0",
"array_serial" : "xxxxx"
}
我正在尝试在 mongo shell 上定义一个函数来重命名它们:
var metricNames = ["Processor Busy %",
"Avg I/O /sec",
"Avg Xfer /sec"];
var renameFields = function(collection) {
var record = db[collection].findOne({});
var myMetric;
for (var key in record) {
if(metricNames.indexOf(key) !== -1){
myMetric = metricNames[metricNames.indexOf(key)];
print(myMetric);
break;
} else {
continue;
}
}
db[collection].update( { }, { $rename : {
'DateTime' : 'datetime',
'Port Name' : 'port_name',
'Port Number' : 'port_number',
'Adaptor ID' : 'adaptor_id',
'Processor ID' : 'processor_id',
'Processor Type' : 'processor_type',
myMetric : 'metric' } }, false, true );
}
根据指定的集合,指标可能是三个之一......问题是除了“myMetric”之外的所有指定字段都被正确重命名,指标字段仍然是带有空格的原始字段。
有任何想法吗?
...更新。
似乎具有“Avg Xfer /sec”指标的集合已正确重命名为“metric”,但具有“Avg I/O /sec”或“Processor Busy %”的集合却没有。我不完全确定为什么会这样。