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

आप MongoDB में ऑटो-इंक्रिमेंटिंग प्राथमिक आईडी कैसे कार्यान्वित करते हैं?

आपको MongoDB के findAndModify कमांड का उपयोग करना होगा। इसके साथ, आप परमाणु रूप से किसी फ़ील्ड का चयन और वृद्धि कर सकते हैं।

db.seq.findAndModify({
  query: {"_id": "users"},
  update: {$inc: {"seq":1}},
  new: true
});

यह users . के लिए एक काउंटर में वृद्धि करेगा संग्रह, जिसे आप सम्मिलन से पहले दस्तावेज़ में जोड़ सकते हैं। चूंकि यह परमाणु है, इसलिए आपको दौड़ की स्थिति के बारे में चिंता करने की ज़रूरत नहीं है जिसके परिणामस्वरूप परस्पर विरोधी आईडी हो सकते हैं।

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

इस दृष्टिकोण का नकारात्मक पक्ष यह है कि चूंकि प्रत्येक प्रविष्टि आपके अनुक्रम संग्रह पर एक लेखन लॉक पर निर्भर है, यदि आप बहुत सारे लेखन कर रहे हैं, तो आप उस पर बहुत जल्दी बाधा डाल सकते हैं। यदि आप केवल यह गारंटी देना चाहते हैं कि संग्रह में दस्तावेज़ सम्मिलन क्रम में क्रमबद्ध हैं, तो कैप्ड संग्रह देखें।



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. हैंडलबार:संपत्ति को हल करने के लिए प्रवेश से इनकार कर दिया गया है क्योंकि यह अपने माता-पिता की अपनी संपत्ति नहीं है

  2. MongoDB:'_id' के बजाय 'id' आउटपुट

  3. अधिकतम सरणी क्षेत्र के अनुसार छँटाई, आरोही या अवरोही

  4. मैं मोंगोज़ के साथ ऑब्जेक्ट आईडी कैसे उत्पन्न कर सकता हूं?

  5. हाइब्रिड क्लाउड बनाम फुल पब्लिक क्लाउड - पेशेवरों और विपक्ष