2
我是有點啞,創造了在關鍵的名稱用空格MongoDB中收集的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"
}
我試圖確定在蒙戈外殼的功能重新命名其中:
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%」的集合卻沒有。我不完全確定這是爲什麼。
關鍵名稱中的空格有什麼問題? – cirrus
對於我具有相同模式集合的特定用法,減少了我在前端執行的代碼數量。我可以創建一個通用模型,如果它們都具有「度量」而不是不同的密鑰。 –