MongoDB-এ নির্দিষ্ট শর্ত পূরণ করা ডকুমেন্টগুলোর মোট BSON সাইজ (বাইটে) বের করতে Object.bsonsize() ফাংশন এবং কার্সর ইটারেশন ব্যবহার করা হয়।
নমুনা কালেকশন তৈরি
> db.demo250.insertOne({ "Name": "Chris" });
{ "acknowledged": true, "insertedId": ObjectId("5e46bd501627c0c63e7dba70") }
> db.demo250.insertOne({ "Name": "Bob" });
{ "acknowledged": true, "insertedId": ObjectId("5e46bd531627c0c63e7dba71") }
> db.demo250.insertOne({ "Name": "David" });
{ "acknowledged": true, "insertedId": ObjectId("5e46bd561627c0c63e7dba72") }
> db.demo250.insertOne({ "Name": "Chris" });
{ "acknowledged": true, "insertedId": ObjectId("5e46bd5b1627c0c63e7dba73") }
ডকুমেন্টগুলো দেখানো
> db.demo250.find();
আউটপুট:
{ "_id": ObjectId("5e46bd501627c0c63e7dba70"), "Name": "Chris" }
{ "_id": ObjectId("5e46bd531627c0c63e7dba71"), "Name": "Bob" }
{ "_id": ObjectId("5e46bd561627c0c63e7dba72"), "Name": "David" }
{ "_id": ObjectId("5e46bd5b1627c0c63e7dba73"), "Name": "Chris" }
"Chris" নামের ডকুমেন্টগুলোর মোট BSON সাইজ বের করা
> var t = 0;
> db.demo250.find({ Name: "Chris" }).forEach(function(doc) {
var s = Object.bsonsize(doc);
t += s;
})
> print(t);
ফলাফল
76
আউটপুট: ৭৬ বাইট (দুইটি "Chris" ডকুমেন্টের মোট BSON সাইজ)।
ব্যাখ্যা:
Object.bsonsize(doc)- ডকুমেন্টের BSON এনকোডেড সাইজ বাইটে রিটার্ন করে।forEach- কার্সরের প্রতিটি ডকুমেন্টের জন্য ফাংশন এক্সিকিউট করে।t += s- টোটাল সাইজ একামুলেট করে।
কলেকশনের মোট সাইজ (সব ডকুমেন্ট)
var total = 0;
db.demo250.find().forEach(function(doc) {
total += Object.bsonsize(doc);
});
print(total);
কলেকশন স্ট্যাটস (বিল্ট-ইন)
db.demo250.stats();
গুরুত্বপূর্ণ ফিল্ডها:
size- ডেটা সাইজ (বাইটে, কমপ্রেসড)۔storageSize- ডিস্কে আলোকিত স্পেস।totalIndexSize- ইন্ডেক্সের সাইজ।count- ডকুমেন্ট সংখ্যা।
সতর্কতা
Object.bsonsize() শেল-সাইড ফাংশন, সার্ভার-সাইড নয়। বড় ডেটাসেটে এটি ধীর হবে। প্রোডাকশনে collStats কমান্ড বা অ্যাগ্রিগেশন ($bsonSize MongoDB ৪.৪+) ব্যবহার করুন।
MongoDB ৪.৪+: $bsonSize অগেটিগেশন
db.demo250.aggregate([
{ $match: { Name: "Chris" } },
{ $group: { _id: null, totalSize: { $sum: { $bsonSize: "$$ROOT" } } } }
]);