ฟิลด์ max ในผลลัพธ์ของ db.collection.stats() ใช้สำหรับ Capped Collection เพื่อจำกัดจำนวนเอกสารสูงสุด
สร้าง Capped Collection พร้อม max
> db.createCollection("demo673", {capped: true, size: 100, max: 50});
{ "ok" : 1 }
ตัวเลือก:
- capped: true - เปิดใช้งาน Capped Collection (ขนาดคงที่, เขียนทับเก่า)
- size: 100 - ขนาดสูงสุดเป็นไบต์ (บังคับ)
- max: 50 - จำนวนเอกสารสูงสุด (Optional)
Insert ข้อมูลทดสอบ:
> db.demo673.insertOne({Name: "John", Age: 23});
{ "acknowledged" : true, "insertedId" : ObjectId("5ea3ec7304263e90dac943e8") }
> db.demo673.insertOne({Name: "Bob", Age: 21});
{ "acknowledged" : true, "insertedId" : ObjectId("5ea3ec7804263e90dac943e9") }
> db.demo673.insertOne({Name: "David", Age: 20});
{ "acknowledged" : true, "insertedId" : ObjectId("5ea3ec7f04263e90dac943ea") }
แสดงข้อมูล:
> db.demo673.find();
ดู Stats พร้อม max
db.demo673.stats();ผลลัพธ์สำคัญ:
การทำงานของ Capped Collection
- เมื่อ insert จนถึง size limit หรือ max documents → ลบเอกสารเก่าทิ้ง (FIFO)
- เหมาะสำหรับ: Logs, Metrics, Cache, Session data, Audit trail
- ไม่สามารถ
deleteหรือupdateทำให้ขนาดใหญ่ขึ้นได้ - Default _id index ไม่สามารถ drop ได้
สรุป max field
max ใน stats = ขีดจำกัดจำนวนเอกสารสูงสุด ของ Capped Collection (ต้องตั้ง capped: true และ size ด้วย)