時間:2024-02-09 10:40作者:下載吧人氣:14
前言
因為之前沒用過mongo,所以最近的開發踩了不少坑,現在熟練了不少。
mongo在許多地方用起來還有許多不如意的地方,比如不知道如何加行鎖,雖然mongo本身可以加寫鎖, 多寫的時候保證原子性,但不能向mysql在事務中 select … for update 這樣加鎖, 這樣可以在應用代碼中添加邏輯并且保證該對應行不被讀取或修改。
還好的是Mongodb4.0是支持事務的(看網上貌似3.6就支持了,但得自己開啟)。剛好前端時間有些業務需求需要用到事務來保證數據的準確性,因為一個動作內有多條出入和修改的操作,如果中途報錯需要回滾。
連接mongo的shell后使用 db.version() 來查看mongodb的版本
Python只用mongo事務
在python中使用使用 pymongo 來操作數據庫
import pymongo mc = pymongo.MongoClient('mongodb://localhost:27018', connect=False, maxPoolSize=2000) with mc.start_session() as session: with session.start_transaction(): mc['test']['test'].insert_one({'a': 1}, session=session) mc['test']['test'].delete_one({'a': 1}, session=session) ...
網友評論