Я пытаюсь вставить несколько больших файлов (около 4 миллионов записей) в экземпляр монго. То, что я в основном пытаюсь достичь, - это обновить существующие данные данными из файлов. Алгоритм будет выглядеть примерно так:
rowHeaders = ('orderId', 'manufacturer', 'itemWeight')
for row in dataFile:
row = row.strip('\n').split('\t')
row = dict(zip(rowHeaders, row))
mongoRow = mongoCollection.find({'orderId': 12344})
if mongoRow is not None:
if mongoRow['itemWeight'] != row['itemWeight']:
row['tsUpdated'] = time.time()
else:
row['tsUpdated'] = time.time()
mongoCollection.update({'orderId': 12344}, row, upsert=True)
Итак, обновите всю строку, кроме «tsUpdated», если веса одинаковые, добавьте новую строку, если строка не в монго, или обновите всю строку, включая «tsUpdated» ... это алгоритм
Вопрос: можно ли сделать это быстрее, проще и эффективнее с точки зрения Монго? (в конце концов с какой-то массовой вставкой)