Какие могли быть другие причины для этого и каким образом я могу узнать, что именно произошло?
Первое, что нужно проверить, это "были ли исключения" ?
В coll.update()
вы не устанавливаете переменную safe
. Если есть исключение для update
, оно не будет выброшено.
В вашем коде вы не перехватываете исключения (что предлагается), и ваше обновление не проверяет наличие исключений, поэтому у вас нет возможности узнать, что происходит.
Второе, что нужно проверить, это "как ты считаешь" ?
Команда update
может «убрать» данные, но не может удалить данные (или изменить _id
).
У вас есть копия оригинальных данных? Можете ли вы запустить свой код на небольшом числе из этих 10 или 100 и посмотреть, что происходит?
То, что вы описываете, не нормально с любым из драйверов MongoDB . Нам определенно нужны дополнительные данные для решения этой проблемы.