У меня есть коллекция MongoDB, где данные нужно обновлять для определенных полей каждую ночь. Коллекция Target имеет 3 дополнительных настраиваемых поля, которые используются конечным пользователем для ввода соответствующих документов.
Таким образом, когда ежедневное обновление sh происходит в течение ночи, источник данных может отправлять новые документы или обновлять данные существующих документов. Документы могут быть до 10000.
Я использую Pymon go и MongoDB для достижения этой цели. Моя проблема в том, как определить, какую запись необходимо обновить, а какую запись нужно вставить с этими 3 дополнительными настраиваемыми полями, не влияя на данные конечного пользователя.
Например:
Источник данных:
Manufacture Name Model Year Units
BMW 5Series 2019 10
BMW 5Series 2020 5
AUDI A4 2020 20
AUDI A7 2019 3
TOYOTA COROLLA 2020 5
TOYOTA CAMRY 2020 6
HONDA ACCORD 2020 10
HONDA PILOT 2019 15
HONDA CRV 2019 20
После загрузки таблица приложения содержит 1 настраиваемый столбец (расположение) для пользовательского ввода
Manufacture Name Model Year Location Units
BMW 5Series 2019 London 10
BMW 5Series 2020 New York 5
AUDI A4 2020 Melbourne 20
AUDI A7 2019 London 3
TOYOTA COROLLA 2020 New York 5
TOYOTA CAMRY 2020 London 6
HONDA ACCORD 2020 Sydney 10
HONDA PILOT 2019 Tokyo 15
HONDA CRV 2019
Во второй день мы получаем новые данные, как показано ниже
Manufacture Name Model Year Units
BMW 5Series 2019 10
BMW 5Series 2020 **35**
**BMW 7Series 2020 12**
AUDI A4 2020 20
AUDI A7 2019 3
**AUDI A6 2019 1**
TOYOTA COROLLA 2020 5
TOYOTA CAMRY 2020 6
HONDA ACCORD 2020 10
HONDA PILOT 2019 15
*HONDA CRV 2019 20* *-- deleted -- in second refresh*
Данные могут быть 10000 записей. Как этого добиться с помощью Pymon go или MongodB? Я написал код в PyMon go до получения исходных данных и сохранения курсора в словаре. Не уверен, как действовать после этого, используя MongoDB Upsert или массовую запись, а также сохранять / обновлять данные столбца Location для существующих записей и назначать значения NULL для новых записей.
Спасибо