Hi, I am trying to batch update mongo using a DataFrame,
df_dict = df[['id', 'name']].to_dict(orient='records')
[{'name': 'vendor1', 'id': '1'},
{'name': 'vendor2', 'id': '2'},
{'name': 'vendor3', 'id': '3'},
{'name': 'vendor4', 'id': '4'},
{'name': 'vendor5', 'id': '5'},
{'name': 'vendor6', 'id': '6'},]
def update_database(update_dicts, table, database):
for row_dict in update_dicts:
database[table].update_one({'id': row_dict['id']},
{'$set': 'name': row_dict['name']})
when doing updating, pass df_dict to update_database function as the
argument for update_dicts; I am wondering is there a way to update mongo in
one go that doesn't have to go through the for loop and update_one document
at a time.
I am thinking if I don't go through the loop, it will be more efficient for
updating mongo.
I know there a Bulk.find.update() operation, one has to loop through the
list of dicts in order to initialize the Bulk() operation for each document
(using find) in order to update.
cheers
--
https://mail.python.org/mailman/listinfo/python-list