I want to update field in exists mongodb document. But set value should be average value of old value and new value.
I can get old value from mongodb document and calculate average value, and set into field, but it's not thread safety and old value in mongodb document might change while I calculate average.
Example, document:
{ '_id': ObjectId("55d49338b9796c337c894df3"), value: 10 }
Python code:
# new_value = 15, therefore average_value = 12.5
db.mycollection.update_one(
{'_id': '55d49338b9796c337c894df3'},
{...} <- What there?
)
Before:
{ '_id': ObjectId("55d49338b9796c337c894df3"), value: 12.5 }