Capped Collection trong MongoDB
Capped collections là các Circular Collection có kích cỡ cố định mà theo sau thứ tự chèn để làm tăng cao hiệu suất của các hoạt động create, read và delete. Với Circular, nó nghĩa là khi kích cỡ cố định được cấp phát hết cho Collection, thì nó sẽ bắt đầu xóa Document cũ nhất trong Collection ...
Capped collections là các Circular Collection có kích cỡ cố định mà theo sau thứ tự chèn để làm tăng cao hiệu suất của các hoạt động create, read và delete. Với Circular, nó nghĩa là khi kích cỡ cố định được cấp phát hết cho Collection, thì nó sẽ bắt đầu xóa Document cũ nhất trong Collection đó mà không cần cung cấp bất kỳ lệnh tường minh nào.
Capped Collection giới hạn các hoạt động cập nhật tới Document nếu các cập nhật đó làm tăng kích cỡ của Document. Khi Capped Collection lưu giữ các Document theo trật tự của Disk Storage, nó bảo đảm rằng kích cỡ tài liệu không tăng hơn kích cỡ được cấp phát trên Disk. Capped Collection là tốt nhất để lưu giữ thông tin log, cache data, …
Tạo Capped Collection trong MongoDB
Để tạo một Capped Collection, chúng ta sử dụng lệnh thường dùng là createCollection nhưng với tùy chọn capped là true và xác định kích cỡ tối đa (bằng byte) cho Collection đó.
>db.createCollection("cappedLogCollection",{capped:true,size:10000})
Với size của Collection, chúng ta cũng có thể giới hạn số Document trong Collection đó bởi sử dụng tham số max:
>db.createCollection("cappedLogCollection",{capped:true,size:10000,max:1000})
Nếu bạn muốn kiểm tra xem một Collection là capped hoặc không, sử dụng lệnh isCapped:
>db.cappedLogCollection.isCapped()
Nếu có một Collection đang tồn tại mà bạn có ý định muốn chuyển đổi thành capped, bạn sử dụng code sau:
>db.runCommand({"convertToCapped":"posts",size:10000})
Code này sẽ chuyển đổi posts collection đang tồn tại thành một Capped Collection.
Truy vấn trên Capped Collection
Theo mặc định, một truy vấn find trên một Capped Collection sẽ hiển thị các kết quả trong thứ tự chèn. Nhưng nếu bạn muốn lấy các Document theo thứ tự ngược lại, sử dụng lệnh sort như sau:
>db.cappedLogCollection.find().sort({$natural:-1})
Dưới đây là một số điều cần lưu ý trong khi làm việc với Capped Collection:
Follow fanpage của team https://www.facebook.com/vietjackteam/ hoặc facebook cá nhân Nguyễn Thanh Tuyền https://www.facebook.com/tuyen.vietjack để tiếp tục theo dõi các loạt bài mới nhất về Java,C,C++,Javascript,HTML,Python,Database,Mobile.... mới nhất của chúng tôi.
Các bài học lập trình MongoDB phổ biến khác tại code24h: