Giới hạn trong MongoDB là gì?

Chúng tôi có thể tạo các bộ sưu tập trong mongoDb mà chúng tôi có thể áp dụng giới hạn kích thước. Những loại bộ sưu tập đặc biệt này được gọi là Bộ sưu tập được giới hạn. Đây là một loại hàng đợi vòng tròn, trong đó nếu đạt đến giới hạn kích thước được phân bổ, nó sẽ tạo khoảng trống cho các tài liệu mới bằng cách ghi đè lên các tài liệu cũ nhất trong bộ sưu tập

Cách tạo Capped Collections
db.createCollection(nameOfCollection, {capped: Boolean, autoIndexId: Boolean, size: Number, max : Number})
Ở đây các tham số chỉ định

  • nameOfCollection. tên bộ sưu tập giới hạn
  • tùy chọn "giới hạn". đặt thành true trong trường hợp tạo bộ sưu tập giới hạn
  • tùy chọn "kích thước". chỉ định giới hạn kích thước cho bộ sưu tập theo byte (bắt buộc trong trường hợp bộ sưu tập bị giới hạn)
  • tùy chọn “tối đa”. chỉ định giới hạn về số lượng tài liệu tối đa được phép trong bộ sưu tập (tùy chọn kích thước được ưu tiên hơn tùy chọn tối đa)
  • tùy chọn “autoIndexId”. đặt thành false trong trường hợp bộ sưu tập bị giới hạn để tắt tính năng tạo chỉ mục tự động

Ví dụ: hãy tạo một bộ sưu tập giới hạn có tên là “demo”

Giới hạn trong MongoDB là gì?

Ở đây chúng tôi đã đặt giới hạn kích thước là 500 byte và số lượng tài liệu tối đa là 3. Bây giờ hãy chèn một số tài liệu vào bộ sưu tập này

Giới hạn trong MongoDB là gì?

Bây giờ, giới hạn kích thước tối đa đã đạt đến và nếu chúng tôi cố gắng thêm nhiều tài liệu hơn, các tài liệu cũ sẽ vượt qua tài liệu mới

Giới hạn trong MongoDB là gì?

Ghi chú. Lệnh db.collection.isCapped() được sử dụng để kiểm tra xem một bộ sưu tập có phải là một bộ sưu tập Capped hay không

Ưu điểm của Capped Collections
1. Truy vấn không cần chỉ mục để trả về tài liệu theo thứ tự chèn do nó cung cấp thông lượng chèn cao hơn

2. Các bộ sưu tập được giới hạn chỉ cho phép các bản cập nhật phù hợp với kích thước tài liệu gốc, điều này đảm bảo tài liệu không thay đổi vị trí của nó trên đĩa

3. Hữu ích để giữ các tệp nhật ký

Nhược điểm của Capped Collections
1. Nếu thao tác cập nhật tăng kích thước ban đầu của bộ sưu tập giới hạn, thao tác cập nhật không thành công

2. Chúng tôi không thể xóa tài liệu khỏi bộ sưu tập giới hạn. Để xóa tất cả các bản ghi khỏi bộ sưu tập giới hạn, hãy sử dụng lệnh { emptycapped: nameOfCollection }

3. Chúng tôi không thể chia nhỏ bộ sưu tập giới hạn

Vì vậy, chúng tôi có thể đưa ra lựa chọn có sử dụng bộ sưu tập giới hạn theo trường hợp sử dụng của chúng tôi hay không

Hy vọng điều này sẽ giúp 🙂

TÌM THẤY NÀY HỮU ÍCH?

Nhãn -

giới hạn bộ sưu tập MongoDB

bình luận (2)

  1. buồn ngủ

    Có một số hạn chế cho vai trò. dbAdmin khi chạy các lệnh như find(), tổng hợp(), v.v. Bạn có biết nếu có những lựa chọn thay thế cho các tình huống như vậy trong 3. 2. x của mongodb?

    Hy vọng, bạn thích hướng dẫn cuối cùng của chúng tôi về Trình tự tăng tự động MongoDB. Bây giờ, chúng ta sẽ xem xét bộ sưu tập giới hạn MongoDB. Đây là những bộ sưu tập cố định, hỗ trợ các hoạt động thông lượng cao

    Trên cơ sở thứ tự chèn, chúng ta có thể chèn và truy xuất tài liệu. Hơn nữa, chúng ta sẽ tìm hiểu cách tạo, chuyển đổi, kiểm tra và truy vấn một bộ sưu tập được giới hạn trong MongoDB

    Cuối cùng, chúng ta sẽ xem những ưu và nhược điểm của các ứng dụng của MongoDB Capped Collection là gì

    Giới hạn trong MongoDB là gì?

    MongoDB Capped Collection – Tạo, Kiểm tra, Chuyển đổi, Mở khóa Capped

    MongoDB Capped Collections là gì?

    Đây là những bộ sưu tập cố định, hỗ trợ các hoạt động thông lượng cao. Trên cơ sở thứ tự chèn, chúng ta có thể chèn và truy xuất tài liệu

    Chúng hoạt động tương tự như bộ đệm tròn. khi tệp bộ sưu tập được cấp phát dung lượng, nó sẽ nhường chỗ cho các tài liệu mới bằng cách ghi đè lên các tài liệu cũ nhất trong bộ sưu tập

    Điều đó có nghĩa là nó bắt đầu xóa tài liệu cũ nhất trong bộ sưu tập mà không cung cấp bất kỳ lệnh rõ ràng nào. Capped collection hạn chế các bản cập nhật nếu các bản cập nhật dẫn đến kích thước tài liệu tăng lên

    Nó lưu trữ tài liệu theo thứ tự lưu trữ đĩa, vì vậy nó sẽ kiểm tra kích thước tài liệu vì nó không nên tăng kích thước được phân bổ cho đĩa. Tốt nhất là lưu trữ thông tin nhật ký, dữ liệu bộ đệm hoặc bất kỳ dữ liệu khối lượng lớn nào khác

    i. Làm cách nào để tạo Capped Collection trong MongoDB?

    Để tạo một bộ sưu tập giới hạn MongoDB, chúng tôi sử dụng lệnh createCollection thông thường với tùy chọn giới hạn là đúng và chỉ định kích thước tối đa của bộ sưu tập theo byte

    >db.createCollection("cappedLogCollection",{capped:true,size:10000})

    Cùng với đó là, chúng tôi có thể giới hạn số lượng tài liệu trong bộ sưu tập bằng tham số tối đa-

    >db.createCollection("cappedLogCollection",{capped:true,size:10000,max:1000})

    ii. Làm cách nào để kiểm tra Bộ sưu tập có bị giới hạn hay không?

    Nếu bạn muốn kiểm tra xem một bộ sưu tập có bị giới hạn hay không, hãy sử dụng lệnh sau

    >db.cappedLogCollection.isCapped()

    iii. Làm cách nào để chuyển đổi Bộ sưu tập thành Capped?

    Nếu có một bộ sưu tập hiện có mà bạn muốn thay đổi nó thành giới hạn, bạn có thể làm điều đó bằng cách sử dụng lệnh sau

    >db.runCommand({"convertToCapped":"posts",size:10000})

    iv. Làm cách nào để tìm Truy vấn trên Bộ sưu tập được giới hạn trong MongoDB?

    Nói chung, truy vấn tìm kiếm trên bộ sưu tập giới hạn sẽ hiển thị kết quả theo thứ tự chèn. Nhưng nếu bạn muốn các tài liệu theo thứ tự ngược lại, hãy sử dụng lệnh sắp xếp như hình bên dưới

    >db.cappedLogCollection.find().sort({$natural:-1}

    Sự thật về MongoDB Capped Collection

    Sau đây là một số điểm cần nhớ về Capped Collections trong MongoDB

    1. Bạn không thể xóa tài liệu khỏi bộ sưu tập giới hạn. Nó chỉ có thể bị xóa tự động khi chèn tài liệu mới khi kích thước được phân bổ cho bộ sưu tập đã hết
    2. Sau khi đọc các tài liệu từ một bộ sưu tập được giới hạn, MongoDB trả về cùng một tài liệu theo thứ tự chúng có trên đĩa. Do đó, nó làm cho các thao tác đọc thực hiện rất nhanh
    3. Hoạt động cập nhật có một hạn chế với chính nó. Nếu cập nhật trong bộ sưu tập làm tăng kích thước của tài liệu, thì nó sẽ không cập nhật tài liệu đó trong bộ sưu tập vì mỗi tài liệu có kích thước cố định trong lần đầu tiên chèn vào bộ sưu tập giới hạn

     

    Làm cách nào để giải phóng bộ sưu tập được giới hạn MongoDB?

    Ở đây chúng ta sẽ sử dụng 2 lệnh là mongodump và mongorestore

    i. Kết xuất bộ sưu tập giới hạn

    Trước hết, chúng tôi sẽ kết xuất bộ sưu tập giới hạn

    PROD [email protected]:/data/uncap # mongodump -d mydb -c myexample
    connected to: 127.0.0.1:27017
    Sun Feb 5 00:02:28.879 DATABASE: mydb to dump/mydb
    Sun Feb 5 00:02:28.880 mydb.myexample to dump/mydb/myexample.bson
    Sun Feb 5 00:02:31.004 Collection File Writing Progress: 868400/67569879 1% (objects)
    ...
    Sun Feb 5 00:24:13.004 Collection File Writing Progress: 67480900/67569879 99% (objects)
    Sun Feb 5 00:24:14.203 67569879 objects
    Sun Feb 5 00:24:14.203 Metadata for mydb.myexample to dump/mydb/myexample.metadata.json

    ii. Siêu tệp ở định dạng JSON

    Bây giờ, kết xuất cũng bao gồm một tệp siêu dữ liệu ở định dạng JSON

    cat dump/mydb/myexample.metadata.json
      {
        "options": {
        "capped": true,
        "size": 107374182400
       },
        "indexes": [
          {
            "v": 1,
            "key": {
            "_id": 1
          },
          "ns": "mydb.mycoll",
          "name": "_id_"
        }
      ]
    }

    iii. Bỏ phần “tùy chọn”

    Bây giờ, sau phần này, hãy xóa phần “tùy chọn” hiển thị kích thước bộ sưu tập giới hạn

    PROD [email protected]:/data/uncap # mongorestore -d mydb -c myexample_tmp dump/mydb/myexample.bson
    connected to: 127.0.0.1:27018
    Sun Feb 5 00:29:41.473 dump/mydb/myexample.bson
    Sun Feb 5 00:29:41.473 going into namespace [mydb.myexample_tmp]
    Sun Feb 5 00:29:44.060 Progress: 51202216/106169934834 0% (bytes)
    Sun Feb 5 00:29:47.007 Progress: 106497873/106169934834 0% (bytes)
    Sun Feb 5 01:57:19.065 Progress: 106159626025/106169934834 99% (bytes)
    67569879 objects found
    Sun Feb 5 01:57:19.637 Creating index: { key: { _id: 1 }, ns: "mydb.myexample_tmp", name: "_id_" }

    iv. Tạo chỉ số cho chúng tôi

    Sau này nó tự động tạo chỉ số cho chúng ta. Kiểm tra nó sau này

    ________số 8_______

    v. Bỏ bộ sưu tập cũ và đổi tên

    Sau đó, thả bộ sưu tập cũ và đổi tên bộ sưu tập mới

    db.myexample.drop()
    
    db.myexample_tmp.renameCollection('myexample')
    db.myexample.count()
    9876543210

    Ưu điểm của Capped Collections

    Đây là một số lợi ích

    • Truy vấn không cần chỉ mục để trả về tài liệu theo thứ tự chèn do nó cung cấp thông lượng chèn cao hơn
    • Các bộ sưu tập được giới hạn cho phép các bản cập nhật phù hợp với kích thước tài liệu gốc, giúp chúng tôi đảm bảo rằng tài liệu không thay đổi vị trí của nó trên đĩa
    • Nó rất hữu ích để giữ các tệp nhật ký

    Nhược điểm của Capped Collections

    Sau đây là những hạn chế của các bộ sưu tập được giới hạn trong MongoDB

    • Nếu cập nhật tài liệu vượt quá kích thước ban đầu của bộ sưu tập, thao tác cập nhật không thành công
    • Không thể xóa tài liệu khỏi bộ sưu tập giới hạn. Để xóa tất cả các bản ghi khỏi bộ sưu tập được giới hạn, hãy sử dụng lệnh sau
    >db.createCollection("cappedLogCollection",{capped:true,size:10000,max:1000})
    0
    • Không thể phân chia một bộ sưu tập giới hạn

    Ứng dụng của Capped Collection

    Một số ứng dụng của bộ sưu tập giới hạn như sau

    • ghi nhật ký ứng dụng
    • Lịch sử
    • thông tin kiểm toán

    Bản tóm tắt

    Do đó, chúng tôi đã nghiên cứu tất cả về MongoDB capped collections – cách tạo, chuyển đổi, kiểm tra, ưu điểm, nhược điểm. Cuối cùng, chúng ta đã tìm hiểu về mongodump và mongorestore là hai lệnh được sử dụng để mở khóa bộ sưu tập

    Mong. bạn thấy nó hữu ích. Nếu bạn có bất kỳ câu hỏi nào, vui lòng chia sẻ với chúng tôi. Chắc chắn, chúng tôi sẽ lấy lại cho bạn

    Bộ sưu tập có giới hạn và chưa giới hạn trong MongoDB là gì?

    Các bộ sưu tập được giới hạn là các bộ sưu tập có kích thước cố định hỗ trợ các hoạt động có thông lượng cao giúp chèn và truy xuất tài liệu dựa trên thứ tự chèn .

    Khi nào nên sử dụng bộ sưu tập giới hạn trong MongoDB?

    Các bộ sưu tập được giới hạn là tốt nhất để lưu trữ thông tin nhật ký, dữ liệu bộ đệm hoặc bất kỳ dữ liệu dung lượng lớn nào khác .

    Làm cách nào để xóa bộ sưu tập giới hạn trong MongoDB?

    Bạn không thể xóa tài liệu khỏi bộ sưu tập giới hạn . Nó chỉ có thể bị xóa tự động khi chèn tài liệu mới khi kích thước được phân bổ cho bộ sưu tập đã hết. Sau khi đọc các tài liệu từ một bộ sưu tập được giới hạn, MongoDB trả về cùng một tài liệu theo thứ tự chúng có trên đĩa.

    Kích thước tối đa của bộ sưu tập giới hạn trong MongoDB là bao nhiêu?

    Kích thước của bộ sưu tập giới hạn chứa một lượng nhỏ không gian cho chi phí nội bộ và nếu giá trị của trường kích thước nhỏ hơn hoặc bằng 4096, thì dung lượng của bộ sưu tập là 4096 byte