Коллекция обновлений Mongodb с несколькими документами
У меня есть приложение на Python, которое использует asyncio двигателя и имеет базу данных mongo, содержащую около 10 тыс. Документов; Я довольно часто получаю обновления этой базы данных в виде файлов json: обновление всегда является подмножеством существующих записей, но обычно они содержат новые поля и обновляются до существующих. Размер обновления обычно составляет около 5-6k записей.
В настоящее время я загружаю json обновления, перебираю его и использую каждый элемент для создания массовой операции UpdateOne() и помещаю ее в список, а затем отправляю список в операции 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)
В то время как вставка всего начального db из 10k записей занимает всего около 10 секунд, обновление обычно занимает порядка пары минут. Есть ли способ сделать эту операцию более эффективной? В идеале я хотел бы отправить json-обновление без зацикливания.
Заранее спасибо!