使用mongodb shell script
公司的一个内部产品使用了nodejs, mongodb。图表使用qplot。由于某个发布失误,图表中出现了几个特别大的值,结果整个图表就被压扁了。
QA老大有点‘洁癖’,希望修改这几个突兀的数值,让图形好看点。那就修改一下数据吧。
先执行命令mongo, 然后在shell中执行show dbs,use CERDataCache选择好数据库。接着执行下面的script
// Show the data
for (var i=25; i<45; ++i) {
var cur = db["e2873097_week" + i].find({table_name: "WeeklyReportCount"});
printjson({i:i, val: cur.next().r1.f1});
}
// Update the data
db.e2873097_week34.update({table_name: "WeeklyReportCount"}, {
$set: {
"r1.f1": NumberInt(1300)
}
}
});
有以下两点需要注意的地方
-
修改整数值的时候,记得加上NumberInt,否则这个值会被当成字符串。
-
如果document的名字以数字开始,那么下面的写法就是错误的,比如
// Error
db.2873097_week34.update({table_name: "WeeklyReportCount"}, {
$set: {
"r1.f1": NumberInt(1300)
}
}
});
// Correct
db["2873097_week34"].update({table_name: "WeeklyReportCount"}, {
$set: {
"r1.f1": NumberInt(1300)
}
}
});