مقدمه Transactions (Transactions Intro)
مقدمه Transactions: تراکنشها 🔄
Transactions برای انجام چندین عملیات به صورت atomic استفاده میشوند. یعنی یا همه عملیات موفق میشوند یا همه rollback میشوند. این برای اطمینان از consistency دادهها ضروری است.
Transaction چیست؟
Transaction یک مجموعه از عملیات است که:
- Atomic: یا همه انجام میشوند یا هیچکدام
- Consistent: دادهها همیشه در حالت معتبر هستند
- Isolated: عملیاتهای دیگر نمیتوانند در وسط transaction دخالت کنند
- Durable: پس از commit، تغییرات دائمی میشوند
چرا Transactions؟
مثال: انتقال پول بین دو حساب
// بدون transaction (خطرناک!)
// اگر عملیات دوم fail شود، پول از حساب اول کم شده اما به حساب دوم اضافه نشده!
db.accounts.updateOne({ _id: "account1" }, { $inc: { balance: -100 } })
db.accounts.updateOne({ _id: "account2" }, { $inc: { balance: 100 } }) // اگر این fail شود؟
// با transaction (امن)
// یا هر دو موفق میشوند یا هر دو rollback میشوند
مزایا:
- اطمینان از consistency دادهها
- Atomic operations (همه یا هیچ)
- Rollback خودکار در صورت خطا
- جلوگیری از data corruption
💡 نکته: Transactions در MongoDB از نسخه 4.0+ پشتیبانی میشوند و فقط در replica sets و sharded clusters کار میکنند (نه در standalone instances).
✅ یاد گرفتید: Transactions برای عملیاتهای چند document که باید atomic باشند و consistency دادهها را تضمین کنند استفاده میشوند!
آماده رفتن به درس بعدی هستید؟
این درس را به پایان رساندید و میتوانید به درس بعدی بروید.