|
@@ -84,13 +84,15 @@ async function migrateDoneRates() {
|
|
|
const cursor = OldDoneRate.find({}).lean().cursor();
|
|
const cursor = OldDoneRate.find({}).lean().cursor();
|
|
|
// 逐条处理游标中的数据
|
|
// 逐条处理游标中的数据
|
|
|
for await (const doc of cursor) {
|
|
for await (const doc of cursor) {
|
|
|
|
|
+ // 检查并重新计算 completionRate,以校正旧数据中的不合理值
|
|
|
|
|
+ const correctedCompletionRate = doc.startCount > 0 ? (doc.doneCount / doc.startCount) * 100 : 0;
|
|
|
// 格式化数据以匹配本地模型
|
|
// 格式化数据以匹配本地模型
|
|
|
const newRecord = {
|
|
const newRecord = {
|
|
|
date: doc.collectionName,
|
|
date: doc.collectionName,
|
|
|
res: doc.res,
|
|
res: doc.res,
|
|
|
startCount: doc.startCount,
|
|
startCount: doc.startCount,
|
|
|
doneCount: doc.doneCount,
|
|
doneCount: doc.doneCount,
|
|
|
- completionRate: doc.completionRate,
|
|
|
|
|
|
|
+ completionRate: correctedCompletionRate, // 使用校正后的值
|
|
|
};
|
|
};
|
|
|
batch.push(newRecord);
|
|
batch.push(newRecord);
|
|
|
// 如果达到批次大小,则执行批量插入
|
|
// 如果达到批次大小,则执行批量插入
|