यदि आप PHP लाइब्रेरी का उपयोग कर रहे हैं जो ड्राइवर को लपेटता है, तो Client
. का एक उदाहरण बनाने के बाद जैसे $client
. कहा जाता है , आप निम्न कार्य कर सकते हैं:
$session = $client->startSession();
$session->startTransaction();
try {
// Perform actions.
$session->commitTransaction();
} catch(Exception $e) {
$session->abortTransaction();
}
दुर्भाग्य से मुझे PHP लाइब्रेरी संदर्भ में कोई प्रासंगिक दस्तावेज़ नहीं मिला। सरसरी खोज के बाद, लेकिन मुझे PHP लाइब्रेरी के मुद्दों यह सुझाव देता है कि क्लाइंट से एक सत्र बनाना और उस सत्र को शुरू करने के लिए उपयोग करना या तो लेनदेन करना या रद्द करना उचित प्रक्रिया है।
हालाँकि, कुछ बातों के बारे में पता होना चाहिए:
-
$session वैरिएबल को एक अलग पैरामीटर में पास करना होगा . अर्थात। यदि आप
insertOne(['abc' => 1])
execute को निष्पादित करना चाहते हैं एक सत्र में, आपको आवश्यकता होगीinsertOne(['abc' => 1], ['session' => $session])
. यदि आप ऐसा नहीं करते हैं, तो संचालन अभी भी निष्पादित होंगे, लेकिन सत्र का हिस्सा नहीं होंगे - यानी यदि आप बाद में सत्र को वापस रोल करते हैं, तो उन्हें पूर्ववत नहीं किया जाएगा। -
लेन-देन केवल हैं उपलब्ध है यदि आपने एक प्रतिकृति सेट कॉन्फ़िगर किया है . इस स्तर पर MongoDB एक स्टैंडअलोन सर्वर पर लेनदेन का समर्थन नहीं करता है।
यदि आप MongoDB डॉक्स (जैसा कि ऊपर लिंक किया गया है) देखते हैं, तो आप ध्यान देंगे कि उपयोग में होने के लिए एक प्रतिकृति सेट की आवश्यकता विशेष रूप से प्रमुख रूप से प्रदर्शित नहीं होती है, तीसरे शीर्षक के तहत, और सभी उदाहरण कोड के बाद आ रही है (जो, अगर आप मेरे जैसे कुछ भी हैं, तो आप सबसे पहले जिस चीज की तलाश करेंगे)।