Коллекция обновлений Mongodb с несколькими документами - PullRequest
0 голосов
/ 08 мая 2020

У меня есть приложение 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 без зацикливания.

Заранее спасибо!

...