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

MongoDB दस्तावेज़ संचालन परमाणु और पृथक हैं, लेकिन क्या वे सुसंगत हैं?

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

>>> db.foo.save({'_id': 'a', 'version': 1, 'things': []}, safe=True)
'a'
>>> db.foo.update({'_id': 'a', 'version': 1}, {'$push': {'things': 'thing1'}, '$inc': {'version': 1}}, safe=True)
{'updatedExisting': True, 'connectionId': 112, 'ok': 1.0, 'err': None, 'n': 1}

उपरोक्त में ध्यान दें, कुंजी "n" 1 है, यह दर्शाता है कि दस्तावेज़ अपडेट किया गया था

>>> db.foo.update({'_id': 'a', 'version': 1}, {'$push': {'things': 'thing2'}, '$inc': {'version': 1}}, safe=True)
{'updatedExisting': False, 'connectionId': 112, 'ok': 1.0, 'err': None, 'n': 0}

यहां जहां हमने गलत संस्करण के खिलाफ अपडेट करने का प्रयास किया, कुंजी "एन" 0 है

>>> db.foo.update({'_id': 'a', 'version': 2}, {'$push': {'things': 'thing2'}, '$inc': {'version': 1}}, safe=True)
{'updatedExisting': True, 'connectionId': 112, 'ok': 1.0, 'err': None, 'n': 1}
>>> db.foo.find_one()
{'things': ['thing1', 'thing2'], '_id': 'a', 'version': 3}

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



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. अद्वितीय कुंजी जोड़ने के बाद भी MongoDB डुप्लिकेट दस्तावेज़

  2. रेस्टिवस और कर्ल के साथ सिर्फ एक दस्तावेज़ कैसे खोजें?

  3. जावा MongoDb ड्राइवर का उपयोग करके Bson सुंदर प्रिंट

  4. Php7 mongo क्वेरी के साथ समस्याएं ढूंढेंवन

  5. mongodb - सरणी सबसेट पुनर्प्राप्त करें