जब एप्लिकेशन या डेटाबेस अचानक A को लेन-देन लागू करने और B को लेन-देन लागू करने के बीच क्रैश हो जाता है, तब भी state:"pending"
के साथ एक लेन-देन होगा वैश्विक लेनदेन संग्रह में। आपकी पुनर्प्राप्ति स्क्रिप्ट, जिसे आप क्रैश के बाद चलाते हैं, को इस पर ध्यान देना चाहिए, दो खातों की जांच करनी चाहिए, और देखना चाहिए कि एक में लेन-देन लंबित है, लेकिन दूसरे खाते में नहीं। लेन-देन को रोलबैक करने या इसे पूरा करने का प्रयास करने के लिए अब यह वह सब कुछ जानता है जो उसे जानना आवश्यक है।
हां, एक रिकवरी स्क्रिप्ट लिखना जो कि स्मार्ट है आसान नहीं है। लेकिन एक डेटाबेस सिस्टम में लेनदेन जो उनके लिए डिज़ाइन नहीं किया गया है, हमेशा कठिन होता है। कभी-कभी आप अपने दस्तावेज़ों को इस तरह से डिज़ाइन करके MongoDB में लेन-देन की आवश्यकता के आसपास काम कर सकते हैं कि जिन क्षेत्रों को एक साथ अद्यतन करने की आवश्यकता होती है, वे हमेशा एक ही दस्तावेज़ में होते हैं, लेकिन ऐसा करने का हमेशा एक समझदार तरीका नहीं होता है। जब आपके उपयोग-मामले को पूरी तरह से लेन-देन की आवश्यकता हो, तो अपनी विवेक की रक्षा करें और एक संबंधपरक डेटाबेस का उपयोग करें।