const User = require('./model.js)
const result = await User.updateMany({_id:{$in:team}},{ $set: { current_level_status : 'incomplete' , user_helper_status : false,user_admin_status : false }},{$inc:{level_number:1}});
console.log(result)
i am using mongoose set operator and increment operator together
mongoose 'updateMany' is not working with this operators team field contains array of object ids
https://mongoosejs.com/docs/api.html#model_Model.updateMany
The problem is you're passing $inc in the 3rd parameter instead of joining it with same object inside 2nd parameter.
Change
const result = await User.updateMany(
{_id:{$in:team}}, // Parameter 1
{$set: { current_level_status : 'incomplete' , user_helper_status : false,user_admin_status : false }}, // Parameter 2
{$inc:{level_number:1}} // Parameter 3
);
To
const result = await User.updateMany(
{_id:{$in:team}}, // Parameter 1
{ // Parameter 2
$set: { current_level_status : 'incomplete' , user_helper_status : false,user_admin_status : false }
$inc: {level_number:1}
}
);
$inc should be in second parameter of the update() function, but outside of the $set:
User.updateMany({ _id: { $in: team } }, {
$set: {
current_level_status: 'incomplete',
user_helper_status: false,
user_admin_status : false
},
$inc: { level_number: 1 }
});