У меня есть приложение python, которое использует asyncio двигателя и имеет базу данных mon go, содержащую около 10k документов; Я довольно часто получаю обновления этой базы данных в виде файлов json: обновление всегда является подмножеством существующих записей, но обычно они содержат новые поля и обновляют существующие. Размер обновления обычно составляет около 5-6k записей.
В настоящее время я загружаю обновление json, l oop поверх него и использую каждый элемент для создания пакета UpdateOne () и pu sh его в список, затем отправьте список в операции bulk_write , например:
requests = []
for dl_card in data_json:
card_name = dl_card['name']
requests.append(UpdateOne({"name": card_name}, {"$set": dl_card}))
await db.cards.bulk_write(requests)
Пока вставка всего исходного БД из 10К записей занимает всего около 10 секунд, поэтому это обновление обычно занимает порядка пары минут. Есть ли способ сделать эту операцию более эффективной? В идеале я хотел бы отправить обновление json без зацикливания.
Заранее спасибо!