MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

मोंगोडब दस्तावेज़ को लॉक करना संभव नहीं है। अगर मुझे चाहिए तो क्या होगा?

अरे एकमात्र तरीका जिसके बारे में मुझे लगता है कि अब एक स्थिति पैरामीटर जोड़ना है और ऑपरेशन का उपयोग करना है findAndModify(), जो आपको एक दस्तावेज़ को परमाणु रूप से संशोधित करने में सक्षम बनाता है। यह थोड़ा धीमा है, लेकिन चाल चलनी चाहिए।

तो मान लीजिए कि आप एक स्थिति विशेषता जोड़ते हैं और जब आप दस्तावेज़ को पुनः प्राप्त करते हैं तो स्थिति को "IDLE" से "प्रोसेसिंग" में बदल देते हैं। फिर आप दस्तावेज़ को अपडेट करते हैं और स्थिति को "IDLE" में अपडेट करते हुए इसे वापस संग्रह में सहेजते हैं।

कोड उदाहरण:

var doc = db.runCommand({
              "findAndModify" : "COLLECTION_NAME",
              "query" : {"_id": "ID_DOCUMENT", "status" : "IDLE"},
              "update" : {"$set" : {"status" : "RUNNING"} }
}).value

COLLECTION_NAME और ID_DOCUMENT को उचित मान में बदलें। डिफ़ॉल्ट रूप से findAndModify () पुराना मान लौटाता है, जिसका अर्थ है कि क्लाइंट की ओर से स्थिति मान अभी भी IDLE रहेगा। इसलिए जब आपका काम पूरा हो जाए तो बस सब कुछ फिर से सेव/अपडेट करें।

आपको केवल एक ही विचार के बारे में पता होना चाहिए कि आप एक समय में केवल एक दस्तावेज़ को संशोधित कर सकते हैं।

आशा है कि यह मदद करता है।



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. एक नेवला मॉडल को उस फ़ील्ड के साथ पॉप्युलेट करें जो एक आईडी नहीं है

  2. मैं MongoDB में किसी ऑब्जेक्ट को आंशिक रूप से कैसे अपडेट करूं ताकि नई ऑब्जेक्ट मौजूदा के साथ ओवरले/विलय हो जाए

  3. mongoose.js क्वेरीज़ को समकालिक रूप से चलाना

  4. Mongodb - Mongoimport त्रुटि अमान्य वर्ण

  5. MongoDB $asinh