mongodb 事務操作

2021-10-01 06:47:26 字數 1521 閱讀 2144

事務必須用在複製集上:

獲取session:session = db.getmongo().startsession()

開啟事務:session.starttransaction()

獲得collection:yun1 = session.getdatabase(「database」).yun1

操作:yun1.insert()

獲得collection:yun2 = session.getdatabase(「database」).yun2

操作:yun2.insert()

回滾事務:session.aborttransaction()

提交事務:session.committransaction()

————————————————

php操作如下:用commond操作

<?php

//phpinfo();

//exit;

function dump($a)

///使用單獨乙個資料庫

function justinsert()

/// 使用副本集資料庫

function transactioninsert()catch (\mongodb\driver\exception\exception $e)

提交事務

$session->committransaction();

return $manager;

}transactioninsert();

/*$manager = justinsert();

$filter = ['x' => ['$gt' => 1]];

$options = [

'projection' => ['_id' => 0],

'sort' => ['x' => -1],

];// 查詢資料

$query = new mongodb\driver\query($filter, $options);

$cursor = $manager->executequery('test.sites', $query);

foreach ($cursor as $document)

*///$bulk = new mongodb\driver\bulkwrite();

//$bulk->delete(['x' => ['$gt'=>1]], ['limit' => 0]); // limit 為 0 時,刪除所有匹配資料

//$manager->executebulkwrite('test.sites', $bulk);

/// 建立集合的類 ,給command使用

class model

function getcommand()

function insert($data)

function array2object($array)

} else

return $obj;

}function update($data=)

}

Mongodb事務模擬

1 建立事務表,新增一條記錄,如果成功,執行第2步,如果失敗,則事務失敗。2 將該事務的id標誌加在要執行事務的一批資料上,並新增狀態字段 待插入狀態。然後執行批量寫操作。如果成功,則執行第3步,如果失敗,則執行第6步。3 update mult 待插入狀態 成功狀態。如果成功,執行第4步。如果失敗...

關於Mongodb的事務

關於事務 事務的隔離級別 未提交讀 髒讀資料 已提交讀 不可重複讀 幻讀 序列化 serializable解決 uncommitted read 解決 unrepeat read 解決 mongodb的部署方式 單機模式 乙個primary 在記憶體中 包含 乙個databuffer 乙個journ...

事務操作 搭建事務操作環境

1.建立資料庫表,新增記錄 mysql連線資料庫時報此錯誤 string url jdbc mysql localhost 3306 user db 如果使用這句就會報錯。unknown initial character set index 255 received from server.ini...