⚡ 编程实验室🏗️ HTML🎨 CSS⚡ JavaScript🐍 Python🗄️ SQL☕ Java⚛️ React💚 Vue🟢 Node.js⚙️ C语言🐘 PHP🐹 Go🔷 TypeScript🐬 MySQL🔧 C++🎯 C#🦀 Rust🅱️ Bootstrap💡 jQuery🎸 Django🍃 MongoDB👗 Sass🎪 Kotlin📊 R语言📋 XML📊 Excel🐘 PostgreSQL🐳 Docker🅰️ Angular🎮 游戏🏠 网站首页

MongoDB事务处理

掌握多文档事务的ACID特性,确保数据一致性。 · 难度:入门 · +15XP

MongoDB 事务

从 MongoDB 4.0 起支持多文档事务(副本集),4.2 扩展至分片集群。事务保证多个操作的原子性:要么全部成功,要么全部回滚。

核心概念

示例:转账操作

const session = client.startSession();
try {
  session.startTransaction();
  const accounts = db.collection('accounts');
  await accounts.updateOne(
    { _id: 'A' },
    { $inc: { balance: -100 } },
    { session }
  );
  await accounts.updateOne(
    { _id: 'B' },
    { $inc: { balance: 100 } },
    { session }
  );
  await session.commitTransaction();
  console.log('转账成功');
} catch (err) {
  await session.abortTransaction();
  console.log('转账失败,回滚');
} finally {
  session.endSession();
}

表格:事务选项

选项说明默认值
readConcern读隔离级别snapshot
writeConcern写确认级别majority

练习提示: 创建一个包含两个账户的集合,模拟转账场景,故意在第二步前抛出异常,观察回滚效果。

Ctrl+Enter
🚀 升级VIP
解锁全部课程+AI助手

🏆 学习排行

加载中...

📊 统计

📖 83 篇
0 完成
🔥 0