Thank you for your answer, clever approach . The only thing is, as I want to use bulkWrite for performance reasons over a simple updateMany, by having separate updateMany statements in my query, would that be as performant as having a single updateMany (do they execute secuentially, or are they kind of merged into a single statement)?
Answering myself, I think I would lose some performance, as the operations would be executed sequentially (I would need to remove the ordered: false as the last updateMany would rely on the previous ones to be executed), so although it would work, it wouldn’t be as performant as having a single updateMany or at least a few updateMany without having to run in order.
At the end I made 2 bulkWrite statements, an unordered one for the first 3 conditions plus the $unset, and the remaining one (chat_in_progress) in a separate one.
The migration that was previously created was a paginated find and then .updateOne so performance increased greatly, will try using the $not with the previous conditions to see if it improves it to put it on a single bulkWrite.
Again, thank you and really appreciate the alternative approach, it worked for me