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

MongoDB में इन्सर्ट करते समय कुल रिकॉर्ड्स सीमित करने के लिए क्वेरी

MongoDB में कैप्ड कलेक्शन के साथ रिकॉर्ड्स सीमित करना

इन्सर्ट करते समय कुल रिकॉर्ड्स सीमित करने के लिए, capped: true का उपयोग करें और size और max मान सेट करें।

कैप्ड कलेक्शन बनाना

> db.createCollection("demo297", {capped: true, size: 4, max: 4});
{ "ok": 1 }

डॉक्यूमेंट्स इन्सर्ट करना (सीमा से अधिक)

> db.demo297.insertOne({"Name":"Chris"});
{ "acknowledged": true, "insertedId": ObjectId("5e4d54385d93261e4bc9ea43") }
> db.demo297.insertOne({"Name":"Bob"});
{ "acknowledged": true, "insertedId": ObjectId("5e4d543e5d93261e4bc9ea44") }
> db.demo297.insertOne({"Name":"Mike"});
{ "acknowledged": true, "insertedId": ObjectId("5e4d543e5d93261e4bc9ea45") }
> db.demo297.insertOne({"Name":"Sam"});
{ "acknowledged": true, "insertedId": ObjectId("5e4d543f5d93261e4bc9ea46") }
> db.demo297.insertOne({"Name":"John"});
{ "acknowledged": true, "insertedId": ObjectId("5e4d54405d93261e4bc9ea47") }

परिणाम (केवल अंतिम 4)

> db.demo297.find();

व्याख्या

  • capped: true: कैप्ड कलेक्शन बनाता है (फिक्स्ड साइज, सर्कुलर)
  • size: 4: अधिकतम बाइट्स में आकार (बहुत छोटा - डेमो के लिए)
  • max: 4: अधिकतम डॉक्यूमेंट्स की संख्या
  • 5वें इन्सर्ट पर, सबसे पुराना डॉक्यूमेंट (Chris) स्वचालित रूप से हटा दिया गया
  • कैप्ड कलेक्शन इन्सर्शन क्रम बनाए रखते हैं (कोई डिलीट/अपडेट जो आकार बढ़ाता है)

कैप्ड कलेक्शन विशेषताएं

  • हाई-थ्रूपुट लॉगिंग/कैशिंग के लिए आदर्श
  • स्वचालित रूप से सबसे पुराने डॉक्यूमेंट्स को हटाता है जब सीमा पूरी होती है
  • डॉक्यूमेंट्स डिलीट नहीं कर सकते (केवल drop collection)
  • अपडेट केवल उसी आकार या छोटे डॉक्यूमेंट्स के लिए अनुमत
  • प्राकृतिक क्रम (_id क्रम) में तेज क्वेरी

वास्तविक दुनिया में size सेटिंग

            
  1. - MongoDB में Collection में Documents की Number Limit करना

    Collection में documents की number limit करने के लिए capped: true set करें। Size भी वहीँ set करें। Capped Collection बनाना > db.createCollection( demo683, { capped: true, size: 5 ,max:4} ) { ok : 1 } > db.demo683.insertOne({Value:100}); { acknowledged : true, insertedId : ObjectId(5ea468afa7e

  1. - MongoDB क्वेरी: फील्ड के रिटर्निंग वैल्यूज को लिमिट करें

    इसके लिए $slice का उपयोग करें। आइए दस्तावेजों के साथ एक कलेक्शन बनाते हैं: > db.demo594.insertOne({ id:1, details:[ {Name:Chris,Age:21}, {Name:Bob,Age:20}, {Name:David,Age:23}, {Name:Sam,Age:22} ] }); { acknowledged : true, insertedId : ObjectId(5e9334

  1. - MongoDB क्वेरी: नेस्टेड दस्तावेज अपडेट करें

    नेस्टेड दस्तावेज को अपडेट करने के लिए, update() का उपयोग करें और उसके भीतर डॉट नोटेशन का उपयोग करें। आइए दस्तावेजों के साथ एक कलेक्शन बनाते हैं: > db.demo607.insertOne({ id:1, Info1: { Name: Chris, Age: 21, Info2: { SubjectName: MongoDB, Ma