每个项目都有许多任务。并且任务具有开始日期时间字段,由于某些原因它可能会延迟,因此特定项目的每个任务应延迟并更新给定的分钟数。我尝试了以下代码,但是请不要按照给定的延迟时间更新时间。
function delayAllTasks(req, res, next)
{
const givenProjectId = req.body.project_id;
var delays_by = req.body.delays_by;
try
{
Task.find({ project_id: givenProjectId }).exec((err, tasks) => {
tasks.forEach((eachTasks) => {
Task.update( { project_id: givenProjectId }, //where query
{ $set: { estimate_start_datetime: moment(eachTasks.estimate_start_datetime).add(delays_by, 'minutes') } } //what to be changed
).then(function (updatedDelays)
{
return res.status(200).json("updated", updatedDelays);
}).catch(function (err)
{
return res.status(503).json(err);
});
})
})
}
catch (err)
{
return res.status(500).json(err);
}
}
答案 0 :(得分:0)
我将确保您的查询正确找到了任务。.我将记录Task.find查询找到的任务计数。只要Task.find返回要更新的任务,代码就对我有用。
function delayAllTasks(req, res, next)
{
const givenProjectId = req.body.project_id;
var delays_by = req.body.delays_by;
Task.find({ project_id: givenProjectId }).exec((err, tasks) => {
console.log("Updating task count:", tasks ? tasks.length: 0);
tasks.forEach((eachTasks) => {
...