а глобально в чем суть того что делаете и почему сложилась ситуация как сейчас?
Есть коллекция с состояниями операторов исполняющих механизмов. их там штук 10 -20. По каждому из них есть запись в монге, хранит там поля занят/не занят, массив с задачами, которые он получил в очередь на исполнение и еще куча полей. И когда начинается управление очередью задач, нужно сделать запрос к конкретному механизму и добавить в массив с задачами вот эту новую задачу. Проблема в том, что механизм почти все время занят и информация о нем используется в момент выполнения задачи, то есть перед тем, как начать выполнение задачи (оно может длиться 1 минуту, может 5 часов и более) в коде нужен статус этот механизма и информация о его состоянии из монги. И вот когда другую задачу пытаюсь поместить в очередь задач, как я понимаю, я тяну ту копию объекта, которая была в тот момент, пока механизм не стал занят, а мне нужно в двух разных потоках изменить разные поля одного и того же объекта монги. Ну и и получается, что сохраняется в итоге в базу непойми что, кто раньше тот и сохраняется