Duyệt qua con trỏ (cursor) và cộng dồn kích thước BSON của từng tài liệu.
Tạo collection
> db.sizeOfAllDocumentsDemo.insertOne({"StudentFirstName": "John", "StudentSubject": ["MongoDB", "Java"]});
{ "acknowledged": true, "insertedId": ObjectId("5cd3c0c1edc6604c74817cd7") }
> db.sizeOfAllDocumentsDemo.insertOne({"StudentFirstName": "Larry", "StudentSubject": ["MySQL", "PHP"], "StudentAge": 21});
{ "acknowledged": true, "insertedId": ObjectId("5cd3c0d9edc6604c74817cd8") }
> db.sizeOfAllDocumentsDemo.insertOne({"StudentFirstName": "Chris", "StudentSubject": ["SQL Server", "C#"], "StudentAge": 23, "StudentCountryName": "US"});
{ "acknowledged": true, "insertedId": ObjectId("5cd3c0fbedc6604c74817cd9") }
Hiển thị tất cả
> db.sizeOfAllDocumentsDemo.find().pretty();
Tính tổng kích thước BSON
> var allDocument = db.sizeOfAllDocumentsDemo.find();
> var counter = 0;
> allDocument.forEach(function(myDocument) {
counter = counter + Object.bsonsize(myDocument);
});
> print(counter);
Kết quả: 358 (bytes)
Giải thích: Object.bsonsize(document) trả về kích thước BSON serialized của một tài liệu (bytes). Vòng lặp forEach duyệt qua cursor.
Cách khác (aggregation):
db.sizeOfAllDocumentsDemo.aggregate([
{ $project: { size: { $bsonSize: "$$ROOT" } } },
{ $group: { _id: null, totalSize: { $sum: "$size" } } }
]);
(Yêu cầu MongoDB 4.4+ cho $bsonSize)