Задать вопрос
@sivesil25

Парсинг по расписанию и аплоад в БД?

Привет!

Нужен совет и мысли вслух о порядке действий.
Задача такая (тестовая)
По расписанию, каждую ночь получать со стороннего АПИ файл с данными (100000 записей на 14000 товаров)
Сгруппировать по шаблону товары
Загрузить в БД (монго)

Сторонний АПИ это что-то метафизическое, доступа к нему нет, просто файл.

Ну как я понимаю порядок действие:
На NestJS Cron задача, axios отправляет гет запросы на адрес пока через через пост не получит файл с выгрузкой
Парсим в свой шаблон
Загружаем в базу
Ждем следующей ночи

Вопрос возникает ещё и по БД.
Судя по всему каждую ночь в файле выгрузка всех товаров
Нужно каким-то образом найти разницу и пометить товары как удаленные / не активные из старого списка
Как правильнее тут поступить?
Выгрузить старую на сервер и сравнить с новой
Или есть какие-то методы в mongoose ?

Прошу прощения за спонтанность, просто нужен мозговой штурм и накинуть идей хороших на вентилятор
Всем спасибо)
  • Вопрос задан
  • 151 просмотр
Подписаться 1 Средний 2 комментария
Решения вопроса 1
@rPman
Тебе нужен критерий, как отличать старые записи (дубликаты или не изменившиеся, тебе виднее что там) от новых.

Если удобного идентификатора нет, то обычно самое простое, - формировать из сравниваемых данных строку одинаковым способом, и получать из нее хеш сумму (md5 более чем подходит, если данных не 16-значное количество, т.е. не нужно заботиться о коллизиях), его и используй как идентификатор и храни где-то списком как предыдущие значения и сравнивай с ново загруженной, прямо во время анализа. Записи, хеш сумма которых, не была найдена в записях, помещай в базу данных (ну или обновляй значения, если речь идет о модификации а не добавлении новых).
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы