我在node js中使用了mongoose,并且我想进行一个布尔切换,但是当我使用findOneAndUpdate(正如我所写的)时,我得到的“done”为false,但是第二次“done”不是true
最后,我想得出这样的逻辑:单击按钮时,如果“done”为true且相同,则它应变为false;如果为false,则它应变为true
{
"_id": "63be594eaceb91f14825b144",
"tasksTitle": "Daily",
"collectioner": "63bc41041e463e09c07db3fe",
"collectionAuthor": "63b31ee65e03accdf60ca705",
"tasksItems": [
{
"taskItemTitle": "exampleTitle",
"deadline": 0,
"done": true,
"_id": "63be49f56c9c394d282b155f"
}
]
}
argument "taskItemId: 63be49f56c9c394d282b155f"
tasksModel.findOneAndUpdate(
{
"tasksItems._id": taskItemId,
tasksItems: {
$elemMatch: {
_id: taskItemId,
},
},
},
[{ $set: { tasksItems: { done: { $eq: [false, "$done"] } } } }],
{ new: true }
);
1条答案
按热度按时间9bfwbjaz1#
最简单的解决方案可能是检索任务并独立更新
taskItems
: