# ट्रांज़ैक्शन एक नज़र में — मोंगोडीबी

Source: https://www.geekswithgeeks.com/hi/mongodb/mongo-transactions

> सब-या-कुछ-नहीं अपडेट के लिए मल्टी-डॉक्यूमेंट ACID ट्रांज़ैक्शन।

## मल्टी-डॉक्यूमेंट ACID

**ट्रांज़ैक्शन** कई writes को समूहित करता है, संभवतः कई कलेक्शन में, ताकि वे सब साथ सफल हों या सब वापस हो जाएँ।

## सेशन और withTransaction

एक सेशन शुरू करें, फिर operations को `withTransaction` के अंदर चलाएँ — यह अपने-आप कमिट होता है या त्रुटि पर वापस हो जाता है।

```javascript
const session = client.startSession();

await session.withTransaction(async () => {
  await accounts.updateOne({ _id: a }, { $inc: { balance: -100 } }, { session });
  await accounts.updateOne({ _id: b }, { $inc: { balance: 100 } }, { session });
});
```

## कम ही उपयोग करें

ट्रांज़ैक्शन तभी उपयोग करें जब कई डॉक्यूमेंट को वाकई साथ सफल या विफल होना ज़रूरी हो — अच्छा स्कीमा डिज़ाइन (एम्बेडिंग) ज़्यादातर मामलों में इनकी ज़रूरत ही नहीं पड़ने देता।
