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 सेटिंग