Seniorسختی 3 از ۵· در 42٪ مصاحبههای این حوزه پرسیده شده
آیا MongoDB از تراکنش (Transaction) پشتیبانی میکند؟
☆نشان کردنپاسخ کوتاه
بله، از نسخهٔ ۴ به بعد MongoDB از تراکنشهای چند-سندی (Multi-document Transactions) با معنای ACID پشتیبانی میکند، اما استفادهٔ سنگین از آن برخلاف فلسفهٔ اصلی طراحی NoSQL و میتواند کارایی را کاهش دهد.
پاسخ کامل
در طراحی سالم MongoDB، بیشتر تلاش میشود دادههای مرتبط در یک Document واحد Embed شوند تا اصلاً نیاز به تراکنش چند-سندی پیش نیاید؛ تراکنش صریح بیشتر برای سناریوهای خاص و اجتنابناپذیر استفاده میشود.
نکته مهم
اگر یک پروژه بهشدت به تراکنشهای پیچیدهٔ چندجدولی نیاز دارد، این میتواند نشانهای باشد که SQL انتخاب مناسبتری بوده است.
اشتباه رایج
❌ طراحی مدل داده در MongoDB دقیقاً مثل SQL (کاملاً نرمالشده و پخش بین چند Collection) و سپس تکیهٔ سنگین به تراکنش برای جبران آن.
