Bỏ qua và giới hạn hoạt động như thế nào trong mongodb?
Để giới hạn các bản ghi trong MongoDB, bạn cần sử dụng phương thức limit(). Phương thức chấp nhận một đối số kiểu số, là số lượng tài liệu mà bạn muốn hiển thị Show cú phápCú pháp cơ bản của phương thức limit() như sau - >db.COLLECTION_NAME.find().limit(NUMBER) Ví dụHãy xem xét bộ sưu tập myycol có dữ liệu sau {_id : ObjectId("507f191e810c19729de860e1"), title: "MongoDB Overview"}, {_id : ObjectId("507f191e810c19729de860e2"), title: "NoSQL Overview"}, {_id : ObjectId("507f191e810c19729de860e3"), title: "Tutorials Point Overview"} Ví dụ sau sẽ chỉ hiển thị hai tài liệu trong khi truy vấn tài liệu >db.mycol.find({},{"title":1,_id:0}).limit(2) {"title":"MongoDB Overview"} {"title":"NoSQL Overview"} > Nếu bạn không chỉ định đối số số trong phương thức limit() thì nó sẽ hiển thị tất cả các tài liệu từ bộ sưu tập Phương thức bỏ qua MongoDB()Ngoài phương thức limit(), còn có một phương thức khác là skip() cũng chấp nhận đối số kiểu số và được sử dụng để bỏ qua số lượng tài liệu Đối tượng con trỏ của MongoDB có một phương thức gọi là Tôi đã viết một bài đăng trên blog về cách bạn có thể phân trang nhanh và hiệu quả trong MongoDB Nhưng trong khi xem qua tài liệu về bỏ qua, có một điều thú vị cần lưu ý. Có một cảnh báo nhỏ trong tài liệu MongoDB, nói rằng
Nói tóm lại, MongoDB phải lặp lại các tài liệu để bỏ qua chúng. Do đó, khi bộ sưu tập hoặc tập kết quả rất lớn và bạn cần bỏ qua các tài liệu để phân trang, lệnh gọi tới {_id : ObjectId("507f191e810c19729de860e1"), title: "MongoDB Overview"}, {_id : ObjectId("507f191e810c19729de860e2"), title: "NoSQL Overview"}, {_id : ObjectId("507f191e810c19729de860e3"), title: "Tutorials Point Overview"}1 sẽ rất tốn kém. Khi xem qua mã nguồn của skip , tôi phát hiện ra rằng nó không sử dụng bất kỳ chỉ mục nào và do đó sẽ chậm hơn khi tập kết quả tăng kích thướcĐiều này cũng ngụ ý rằng nếu bạn sử dụng Nhưng nếu kích thước của tập kết quả nhỏ thì sao? . Nhưng họ chưa… tại sao? Bởi vì nó rất hiệu quả và nhanh chóng cho tập kết quả nhỏ hơn. Tôi đã tận dụng cơ hội này để đánh giá chuẩn và so sánh hai cách tiếp cận để phân trang và ở đó tôi phát hiện ra rằng phân trang dựa trên bỏ qua và giới hạn hoạt động tốt cho các tập kết quả nhỏ hơn Tóm lại, bỏ qua không tệ như người ta nghĩ. Nhưng bạn phải hiểu rõ trường hợp sử dụng của mình để đưa ra quyết định sáng suốt Trong MongoDB, phương thức limit() giới hạn số lượng bản ghi hoặc tài liệu mà bạn muốn. Về cơ bản, nó xác định giới hạn tối đa của hồ sơ/tài liệu mà bạn muốn. Hay nói cách khác, phương thức này sử dụng trên con trỏ để chỉ định số lượng tài liệu/bản ghi tối đa mà con trỏ sẽ trả về. Chúng ta có thể sử dụng phương thức này sau phương thức find() và find() sẽ cung cấp cho bạn tất cả các bản ghi hoặc tài liệu trong bộ sưu tập. Bạn cũng có thể sử dụng một số điều kiện bên trong tìm kiếm để cung cấp cho bạn kết quả mà bạn muốn
cú pháp
Hoặc
ví dụ Trong các ví dụ sau, chúng tôi đang làm việc với
Giới hạn hai tài liệu db.gfg.find().limit(2) Ở đây, chúng tôi chỉ muốn hai tài liệu đầu tiên trong kết quả. Vì vậy, chúng tôi vượt qua 2 trong phương pháp giới hạn Chỉ giới hạn hai tài liệu phù hợp với điều kiện nhất định db.gfg.find({"content":/c/i}).limit(2) Ở đây, chúng tôi chỉ muốn hai tài liệu thỏa mãn điều kiện đã cho, tôi. e. , {"Nội dung". /c/i}) trong phương thức find(). Ở đây, nội dung là chính, chúng tôi sẽ kiểm tra xem nó có chứa ký tự 'c' trong chuỗi hay không. /c/ biểu thị rằng chúng tôi đang tìm kiếm các chuỗi chứa ký tự 'c' này và ở cuối /c/i, i biểu thị rằng nó không phân biệt chữ hoa chữ thường Chỉ giới hạn ba tài liệu phù hợp với điều kiện nhất định db.gfg.find({"content":/c/i}).limit(3) Ở đây, chúng tôi chỉ muốn ba tài liệu thỏa mãn điều kiện đã cho, tôi. e. , {"Nội dung". /c/i}) trong phương thức find(). Ở đây, nội dung là chính, chúng tôi sẽ kiểm tra xem nó có chứa ký tự 'c' trong chuỗi hay không. /c/ biểu thị rằng chúng tôi đang tìm kiếm các chuỗi chứa ký tự 'c' này và ở cuối /c/i, i biểu thị rằng nó không phân biệt chữ hoa chữ thường Bỏ qua hoạt động như thế nào trong MongoDB?Trong MongoDB, phương thức skip() sẽ bỏ qua n tài liệu đầu tiên từ kết quả truy vấn , bạn chỉ cần chuyển số . Về cơ bản, nó loại bỏ n tài liệu đầu tiên khỏi tập kết quả.
Giới hạn hoạt động như thế nào trong MongoDB?Trong MongoDB, phương thức limit() giới hạn số lượng bản ghi hoặc tài liệu mà bạn muốn. Về cơ bản, nó xác định giới hạn tối đa của hồ sơ/tài liệu mà bạn muốn. Hay nói cách khác, phương pháp này sử dụng trên con trỏ để chỉ định số lượng tài liệu/bản ghi tối đa mà con trỏ sẽ trả về .
Bỏ qua và giới hạn trong phân trang là gì?MongoDB có một cách cực kỳ đơn giản để triển khai phân trang. sử dụng các thao tác bỏ qua và giới hạn trên con trỏ. skip(n) bỏ qua n mục trong một truy vấn, trong khi giới hạn(m) chỉ trả về m mục tiếp theo bắt đầu từ mục thứ n .
Làm thế nào để sử dụng bỏ qua và giới hạn trong cầy mangut?Trong Mongoose, phương thức bỏ qua() được sử dụng để chỉ định số lượng tài liệu cần bỏ qua . Khi một truy vấn được thực hiện và kết quả truy vấn được trả về, phương thức skip() sẽ bỏ qua n tài liệu đầu tiên được chỉ định và trả về phần còn lại. |