Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MongoDB

MongoDB में ऑटो-इन्क्रीमेंट से यूनिक यूजर आईडी सीक्वेंस कैसे जनरेट करें

MongoDB में ऑटो-इन्क्रीमेंट सीक्वेंस के लिए एक अलग कलेक्शन में काउंटर मेंटेन करें और findAndModify का उपयोग करें।

चरण 1: सीक्वेंस कलेक्शन बनाएं

> db.createSequenceDemo.insertOne({_id: "SID", S_Value: 0});
{ "acknowledged": true, "insertedId": "SID" }

चरण 2: नेक्स्ट सीक्वेंस फंक्शन बनाएं

> function nextSequence(s) {
  var sd = db.createSequenceDemo.findAndModify({
    query: {_id: s},
    update: {$inc: {S_Value: 1}},
    new: true
  });
  return sd.S_Value;
}

चरण 3: फंक्शन का उपयोग करके डॉक्यूमेंट इन्सर्ट करें

> db.checkSequenceDemo.insertOne({"StudentId": nextSequence("SID"), "StudentName": "Larry", "StudentMathMarks": 78});
> db.checkSequenceDemo.insertOne({"StudentId": nextSequence("SID"), "StudentName": "Mike", "StudentMathMarks": 89});
> db.checkSequenceDemo.insertOne({"StudentId": nextSequence("SID"), "StudentName": "Sam", "StudentMathMarks": 67});

सभी डॉक्यूमेंट देखने के लिए:

> db.checkSequenceDemo.find().pretty();

आउटपुट:

StudentId फील्ड ऑटोमेटिकली 1, 2, 3 के रूप में इन्क्रीमेंट हुआ।

नोट: प्रोडक्शन में हाई कंकरेंसी के लिए MongoDB 4.2+ में findOneAndUpdate या डेडिकेटेड सीक्वेंस सर्विस का उपयोग करें।

  1. - MongoDB में नाम से उपयोगकर्ता नहीं मिल रहा?

    MongoDB में नाम से उपयोगकर्ता खोजने के लिए, find() का उपयोग करें। आइए दस्तावेज़ों के साथ एक संग्रह बनाएं: > db.demo504.insertOne({Name:Chris}); { acknowledged : true, insertedId : ObjectId(5e8823ee987b6e0e9d18f570) } > db.demo504.insertOne({Name:John}); { acknowledged : true, insertedId : Obje

  1. - MongoDB डॉक्यूमेंट में केवल एक मान को इंक्रीमेंट कैसे करें?

    MongoDB में केवल एक मान को अपडेट और इंक्रीमेंट करने के लिए update() के साथ $inc का उपयोग करें। आइए एक कलेक्शन बनाते हैं: > db.demo698.insertOne({Score:78}); { acknowledged : true, insertedId : ObjectId(5ea6d8a4551299a9f98c9398) } > db.demo698.insertOne({Score:56}); { acknowledged : true, inse

  1. - MySQL में ऑटो-इन्क्रीमेंट यूज़र ID को 001 से शुरू कैसे करें?

    MySQL में ऑटो-इन्क्रीमेंट कॉलम को अग्रणी शून्य के साथ प्रदर्शित करने (जैसे 001, 002, 003) के लिए, ZEROFILL एट्रिब्यूट के साथ ALTER TABLE ... CHANGE का उपयोग करें। यह आंतरिक रूप से संख्यात्मक रहता है लेकिन डिस्प्ले में पैडेड होता है। उदाहरण: मौजूदा टेबल को ZEROFILL में बदलना सामान्य टेबल बनाएं: my