Motor 异步更新方法区别 用错凉凉 Python MongoDB ORM

326 阅读1分钟

需求

  • 异步更新mongodb集合部分数据,motor官网给了两个方法:replace_oneupdate_one,但到底用哪个呢?

区别

result = await coll.replace_one({'_id': _id}, {'name': 'value1'})

  • replace_one,替换后仅保留设定的name字段值,集合原先的其他值将被replace无情的弄丢不见。

result = await coll.update_one({'i': 51}, {'$set': {'name': 'value1'}})

  • update_one,更新后仅修改name字段值,集合原先的其他值不变化,好好的在那呢!

感言

  • 我的天,只想更新一个name字段,结果code和i全没了,多么可怕!