Mongodb tối ưu hóa số lượng

MongoDB là Cơ sở dữ liệu NoSQL mã nguồn mở nổi tiếng được viết bằng C++. MongoDB là Cơ sở dữ liệu hướng tài liệu sử dụng các tài liệu giống JSON với Lược đồ động để lưu trữ dữ liệu. Điều đó có nghĩa là bạn có thể lưu trữ các bản ghi của mình mà không phải lo lắng về Cấu trúc dữ liệu, số lượng trường hoặc loại trường được sử dụng để lưu trữ giá trị. Tài liệu trong MongoDB tương tự như Đối tượng JSON

Bạn có thể thay đổi cấu trúc của các bản ghi (mà MongoDB gọi là Tài liệu) bằng cách thêm các trường mới hoặc xóa các trường hiện có. Tính năng này của MongoDB cho phép bạn dễ dàng biểu diễn các Mối quan hệ phân cấp, Mảng lưu trữ và các cấu trúc dữ liệu phức tạp khác. Ngày nay, nhiều gã khổng lồ công nghệ, bao gồm Facebook, eBay, Adobe và Google, sử dụng MongoDB để lưu trữ lượng dữ liệu khổng lồ

Các tính năng chính của MongoDB

Mongodb tối ưu hóa số lượng
Nguồn hình ảnh

Phương thức đếm MongoDB được sử dụng để đếm số lượng tài liệu phù hợp với tiêu chí được chỉ định. Phương thức này không thực sự thực hiện thao tác find(), mà trả về một số tài liệu đáp ứng các tiêu chí lựa chọn

A) Cú pháp chung

Cú pháp chung để sử dụng Phương thức đếm MongoDB được đưa ra bên dưới

db.collection.count(query, options)

B) Các tham số liên quan đến Phương thức đếm MongoDB

Các tham số liên quan đến mô tả cú pháp trên Phương thức đếm MongoDB như sau

  • truy vấn. Nó thể hiện các tiêu chí lựa chọn. Loại tham số này là Tài liệu
  • tùy chọn. Nó đại diện cho tham số thứ hai là tùy chọn. Một số tham số tùy chọn được thảo luận bên dưới
    • giới hạn. Nó được sử dụng để áp đặt một ràng buộc về số lượng tài liệu tối đa cần được đếm
    • nhảy. Đây là một tham số tùy chọn chỉ định số lượng tài liệu sẽ được bỏ qua trước khi Phương thức đếm MongoDB bắt đầu đếm thực tế
    • gợi ý. Đó là một tài liệu hoặc trường chỉ định chỉ mục sẽ được sử dụng để hỗ trợ bộ lọc. Nó có thể chấp nhận Tài liệu Chỉ định Chỉ mục hoặc Chuỗi Tên Chỉ mục và nếu bạn chỉ định một chỉ mục không tồn tại, nó sẽ trả về lỗi
    • đọc Quan tâm. Mối quan tâm đã đọc trong MongoDB cho phép bạn quản lý các thuộc tính nhất quán và cách ly của dữ liệu được đọc từ Bộ bản sao của bạn. Bạn có thể tận dụng tham số readConcern nếu bạn không muốn sử dụng quan tâm đọc mặc định
    • đối chiếu. Đối chiếu cho phép người dùng áp đặt các quy tắc so sánh chuỗi theo ngôn ngữ cụ thể, chẳng hạn như quy tắc viết hoa và dấu trọng âm. Nó có thể được chỉ định cho một bộ sưu tập hoặc chế độ xem, chỉ mục hoặc các hoạt động cụ thể hỗ trợ đối chiếu
    • maxTimeMs. Đây là một tham số tùy chọn chỉ định giới hạn thời gian tích lũy (tính bằng mili giây) để xử lý các thao tác trên con trỏ

C) Ghi chú sử dụng để sử dụng Phương thức đếm MongoDB

Một số điểm quan trọng mà bạn cần lưu ý trước khi sử dụng Phương thức đếm MongoDB như sau

  • Bạn nên tránh sử dụng db. thu thập. phương thức đếm () không có Vị ngữ truy vấn vì nó sẽ trả về kết quả dựa trên siêu dữ liệu của bộ sưu tập, điều này có thể dẫn đến số lượng gần đúng
  • Số lượng kết quả trên một cụm phân mảnh không lọc chính xác các tài liệu mồ côi. Tài liệu mồ côi trong MongoDB là những tài liệu tồn tại trong các khối trên các phân đoạn khác do di chuyển không thành công hoặc dọn dẹp di chuyển không đầy đủ do tắt máy bất thường

D) Ví dụ thực tế

Hãy để chúng tôi hiểu chi tiết về hoạt động của Phương thức đếm MongoDB với sự trợ giúp của một số truy vấn ví dụ. Giả sử bạn có một bộ sưu tập có tên nhân viên bao gồm tuổi và tên của nhân viên

{
“_id”           :        ObjectId(“600fab1788edfrcbcbc34e”),
“name”       :        “John”,
“age”          :        22

}
{
“_id”           :        ObjectId(“600fab1788edfrcbcbc34f”),
“name”       :        “David”,
“age”          :        32

}
{
“_id”           :        ObjectId(“600fab1788edfrcbcbc34g”),
“name”       :        “Leo”,
“age”          :        24

}
{
“_id”           :        ObjectId(“600fab1788edfrcbcbc34h”),
“name”       :        “Theon”,
“age”          :        41

}
{
“_id”           :        ObjectId(“600fab1788edfrcbcbc34i”),
“name”       :        “Larry”,
“age”          :        46

}

Bây giờ, nếu bạn muốn đếm tổng số đối tượng trong bộ sưu tập. Truy vấn sẽ giống như thế này

db.employees.count()

Đầu ra của truy vấn trên sẽ là 5 vì có tổng cộng 5 đối tượng trong Bộ sưu tập nhân viên

Bây giờ, nếu bạn muốn tìm tổng số nhân viên có độ tuổi trên 25. Truy vấn sẽ giống như thế này

db.employees.count({age:{$gt:25}})

Ở đây, $gt có nghĩa là lớn hơn. Đầu ra cho truy vấn trên sẽ là 3 vì có tổng cộng ba nhân viên (David, Larry và Theon) có tuổi lớn hơn 25

Làm cách nào để đếm tài liệu trong một cụm dùng chung?

Như đã thảo luận trong phần trước, nếu các tài liệu mồ côi tồn tại hoặc quá trình di chuyển đoạn đang diễn ra trên một cụm được phân đoạn, Phương thức đếm MongoDB không có Vị ngữ truy vấn có thể tạo ra kết quả không chính xác. Để tránh những tình huống như vậy, bạn có thể sử dụng db. thu thập. phương pháp tổng hợp()

không giống như db. thu thập. phương thức đếm (), phương thức Tổng hợp không sử dụng siêu dữ liệu của bộ sưu tập để trả về số lượng. Bạn có thể tận dụng giai đoạn $count để truy xuất số lượng tài liệu chính xác trong bộ sưu tập được yêu cầu. Ví dụ, hoạt động sau đây đếm các tài liệu trong một bộ sưu tập

db.collection.aggregate( [
   { $count: "myCount" }
])

Phần kết luận

Bài viết này đã giới thiệu cho bạn về MongoDB và các tính năng nổi bật mà nó mang lại. Hơn nữa, nó đã giới thiệu cho bạn phương pháp Đếm MongoDB có thể giúp bạn đếm số lượng tài liệu trong một bộ sưu tập

Khi doanh nghiệp của bạn bắt đầu phát triển, dữ liệu được tạo theo cấp số nhân trên tất cả các ứng dụng SaaS, Cơ sở dữ liệu và các nguồn khác của công ty bạn. Để đáp ứng nhu cầu lưu trữ và xử lý dữ liệu ngày càng tăng này,  bạn cần đầu tư một phần băng thông kỹ thuật của mình để Tích hợp dữ liệu từ tất cả các nguồn, Làm sạch & Chuyển đổi dữ liệu và cuối cùng tải dữ liệu đó vào Kho dữ liệu trên đám mây để có thêm Phân tích kinh doanh

Tất cả những thách thức này có thể được xử lý hiệu quả bằng công cụ ETL dựa trên đám mây như Hevo Data

Ghé thăm trang web của chúng tôi để khám phá Hevo

Hevo Data, Đường ống dữ liệu không mã cung cấp cho bạn giải pháp nhất quán và đáng tin cậy để quản lý truyền dữ liệu giữa nhiều nguồn khác nhau như MongoDB và nhiều Điểm đến mong muốn khác nhau, với một vài cú nhấp chuột

Hevo Data với khả năng tích hợp mạnh mẽ với hơn 100 nguồn (bao gồm hơn 40 nguồn miễn phí) cho phép bạn không chỉ xuất dữ liệu từ các nguồn dữ liệu mong muốn và tải dữ liệu đó đến đích bạn chọn mà còn chuyển đổi và làm phong phú dữ liệu của bạn để phân tích.

Bạn muốn thử Hevo? . Bạn cũng có thể xem giá cạnh tranh nhất sẽ giúp bạn chọn gói phù hợp cho nhu cầu kinh doanh của mình

MongoDB có được đếm nhanh hơn find không?

bộ sưu tập. count() không có tham số sẽ đếm tất cả tài liệu trong bộ sưu tập trong khi db. thu thập. find() không có tham số khớp với tất cả các tài liệu trong một bộ sưu tập và việc thêm vào count() sẽ đếm chúng, vì vậy không có sự khác biệt .

Làm cách nào để cải thiện hiệu suất MongoDB?

Tối ưu hóa hiệu suất truy vấn .
Tạo chỉ mục để hỗ trợ truy vấn
Giới hạn số lượng kết quả truy vấn để giảm nhu cầu mạng
Sử dụng phép chiếu để chỉ trả lại dữ liệu cần thiết
Sử dụng $hint để chọn một chỉ mục cụ thể
Sử dụng toán tử gia tăng để thực hiện thao tác phía máy chủ

Đếm () trong MongoDB là gì?

Phương thức count() đếm số lượng tài liệu phù hợp với tiêu chí lựa chọn . Nó trả về số lượng tài liệu phù hợp với tiêu chí lựa chọn. Phải mất hai đối số đầu tiên là tiêu chí lựa chọn và đối số còn lại là tùy chọn. Phương pháp này tương đương với db. thu thập.

Làm cách nào để đếm các bản ghi trong MongoDB?

count() được sử dụng để trả về số lượng tài liệu khớp với truy vấn find() . db. thu thập. Phương thức đếm () không thực hiện thao tác tìm () mà thay vào đó đếm và trả về số lượng kết quả khớp với truy vấn.