【发布时间】:2021-02-01 06:50:11
【问题描述】:
我正在尝试为一个工作项目创建一个小型任务管理站点。这里的总体目标是每个月的任务都保持不变(它们的状态可以更新等等),并且需要在每个新月的开始时复制它们,以便它们可以在表格上显示和排序。
我已经想出了如何安排任务,我已经设置了我需要的表。代码前的一点解释——我计划这样做的方式是有两个不同的任务集合——一个我称之为“分配”的任务,将有需要复制的任务(包括它们的描述、状态和其他必要的data) 和另一个集合,我称之为“任务”,将具有完全相同的数据,但带有一个额外的“日期”字段。这是表格从中获取数据的地方,日期仅用于排序目的。
这是我目前所拥有的 -
Index.js:从数据库中获取所有分配,并将对象发送到复制函数。
router.get('/test', async function(req, res, next) {
let allTasks = await dbModule.getAllAssignments();
let result = await dbModule.duplicateTasks(allTasks);
res.json(result);
});
dbmodule.js:
getAllAssignments: () => {
allAssignments = Assignment.find({});
return allAssignments;
},
duplicateTasks: (allTasksToAdd) => {
try {
for (let i = 0; i < allTasksToAdd.length; i++) {
let newTask = new Task({
customername: allTasksToAdd.customername,
provname: allTasksToAdd.provname,
description: allTasksToAdd.description,
status: allTasksToAdd.status,
date: "07-2020"
})
newTask.save();
}
return "Done"
} catch (error) {
return "Error"
}
}
当我尝试并实际复制任务时,问题就出现了。出于测试目的,我这次手动输入了日期,但这就是最终插入的所有内容 - 只是日期,其余数据被跳过。我听说过db.collection.copyTo(),但我不确定它是否允许我插入我需要的字段,或者猫鼬是否支持它。我知道绝对有一种更简单的方法可以做到这一点,但我无法弄清楚。如果有人有任何意见和建议,我很乐意。
谢谢。
【问题讨论】: