【发布时间】:2020-12-16 05:10:10
【问题描述】:
我创建了一个服务来更新我的所有{bookings},并在{booking.date} 过去时将bookings.status 值设置为4(已完成)。
现在我需要更新另一个值{booking.catering.state} 并将其设置为2(拒绝)当它的初始状态是1(请求)并且booking.date 是过去.
我的代码(第一个片段运行良好),第二个没有。也许问题是由第二个 updateMany() 的多重条件引起的。但是,{caterings.nModified} 始终返回 0。我错过了什么?。 :
// UPDATE BOOKIGNS WITH PAST DATE OR TODAYS DATE AND PAST HOURS
const bookings = await Booking.updateMany(
{
$or: [
{ date: { $lt: today } },
{ date: today, end: { $lt: now.getHours() } },
],
},
// SET STATE TO "FINISHED"
{ status: 4 }
);
// UPDATE CATERING, WHERE THE STATE IS "1" - REQUESTED
const caterings = await Booking.updateMany(
{
$or: [
{ date: { $lt: today } },
{ date: today, end: { $lt: now.getHours() } },
],
catering: {
status: 1,
},
},
// SET CATERING STATE TO "DENIED"
{
catering: {
status: 2,
},
}
);
console.log(
"\x1b[32m",
`[manager]: ${bookings.nModified} bookings has been updated`
);
console.log(
"\x1b[32m",
`[manager]: ${caterings.nModified} caterings has been updated \n`
);
【问题讨论】:
标签: node.js json mongodb mongoose nosql