Я работаю над решением этой проблемы:
У меня есть большая коллекция записей, которые мне регулярно приходится обновлять из другой базы данных. Я использую express. js с mongodb. График обновления начинается каждый день в 01:00. Я извлекаю внешние данные, сравниваю их с существующими в настоящее время и обновляю все записи в нашей базе данных.
Процесс выглядит так: 1) Получение внутренних и внешних данных 2) Объединение их вместе (прошлые записи из нашей базы данных, будущие записи из другая база данных) 3) Удалить все записи в нашей базе данных 4) InsertMany - записи, которые программа только что объединила.
Итак, как видите, это довольно рискованная задача. Если между удалением и вставкой данных в коллекцию произойдет какая-либо ошибка, мы потеряем все данные.
И вот мои вопросы:
1) Есть ли эффективный способ вернуть данные, которые были только что удалил в пн go? Или оставьте их в ожидании и вставьте обратно на место, если возникнет какая-либо ошибка?
2) Есть ли другой эффективный способ обновления нескольких сотен / тысяч документов, кроме deleteMany -> insertMany // updateOne на каждом документ?
Будем признательны за любые советы.