Blog

Capped Collection trong MongoDB

1. Khái niệm Collection trong MongoDB

Collection là một nhóm các Document trong MongoDB. Nó tương đương như một bảng trong RDBMS. Do đó, một Collection tồn tại bên trong một cơ sở dữ liệu duy nhất. Các Collection không có ràng buộc Relationship như các hệ quản trị cơ sở dữ liệu khác nên việc truy xuất rất nhanh, chính vì thế mỗi collection có thể chứa nhiều thể loại khác nhau không giống như table trong hệ quản trị mysql là các field cố định. Các Document bên trong một Collection có thể có nhiều trường khác nhau. Đặc biệt, tất cả các Document trong một Collection là tương tự nhau hoặc với cùng mục đích liên quan.

2. Capped collections là gì?

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, …

Khái niệm về Capped Collection trong MongoDB

3. 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à create Collection nhưng với tùy chọn capped 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.

>> Đọc thêm: Tạo Database trong MongoDB

>> Đọc thêm: Xóa Collection trong MongoDB

4. 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:

  • Chúng ta không thể xóa các Document từ một Capped Collection.
  • Không có chỉ mục mặc định có mặt trong một Capped Collection, ngay cả trên trường _id.
  • Trong khi chèn một Document mới, MongoDB không thực sự phải nhìn vào vị trí đặt Document mới đó trên Disk. Nó có thể chèn Document mới đó tại đuôi của Collection. Điều này làm cho hoạt động chèn trong Capped Collection diễn ra rất nhanh.
  • Tương tự, khi đọc các Document, MongoDB chỉ phải trả về các Document theo cùng thứ tự như trên Disk. Điều này làm cho hoạt động đọc diễn ra rất nhanh.

Nguồn: Internet

Chúng tôi chuyên cung cấp những khóa học về Phân tích dữ liệu, đăng ký ngay để nhận được tư vấn chi tiết lộ trình dành riêng cho bạn nhé!

    LIÊN HỆ VỚI CHÚNG TÔI ĐỂ NHẬN ĐƯỢC TƯ VẤN MIỄN PHÍ
    Xin vui lòng điền vào form dưới đây. Chúng tôi sẽ liên hệ lại ngay cho bạn khi nhận được thông tin:






    Leave a Reply

    Your email address will not be published. Required fields are marked *