Làm cách nào để đếm tổng hợp các bản ghi trong MongoDB?
Nếu tôi thực hiện truy vấn này không giới hạn thì 10 bản ghi sẽ được tìm nạp. Nhưng tôi muốn giữ giới hạn là 2. Vì vậy, tôi muốn lấy tổng số hồ sơ để đếm. Làm thế nào tôi có thể làm với tập hợp? . Cảm ơn Show
Bài viết này thảo luận về các toán tử trong MongoDB, toán tử 2 và các phương pháp khác nhau để đếm tổng số bản ghiThao tác trong MongoDBCác hoạt động CRUD là các khái niệm về giao diện người dùng cho phép người dùng duyệt, tìm kiếm và thay đổi các đối tượng trong cơ sở dữ liệu Các tài liệu MongoDB được thay đổi bằng cách kết nối với máy chủ, truy vấn các tài liệu thích hợp, sau đó chuyển đổi chúng trước khi gửi dữ liệu đó trở lại cơ sở dữ liệu để xử lý. CRUD là một quy trình dựa trên dữ liệu sử dụng các động từ hành động HTTP để chuẩn hóa nó
Hoạt động tổng hợp trong MongoDBĐó là một hoạt động xử lý dữ liệu bao gồm các giai đoạn thực hiện nhiều thao tác trên dữ liệu được nhóm để tạo ra một kết quả duy nhất. Sau đây là ba tùy chọn để thực hiện thao tác 2
{ "_id" : 1, "subject" : "English", "score" : 88 } { "_id" : 2, "subject" : "English", "score" : 92 } { "_id" : 3, "subject" : "English", "score" : 97 } { "_id" : 4, "subject" : "English", "score" : 71 } { "_id" : 5, "subject" : "English", "score" : 79 } { "_id" : 6, "subject" : "English", "score" : 83 } 8 trong MongoDBGửi tài liệu đến bước tiếp theo với số lượng bản ghi mà nó đã nhận được Hành vi Chuỗi 9 + 0 sau bằng giai đoạn 8 1Trong đó 2 biểu thị, trường đầu ra chứa số lượng. Bạn có thể đặt tên khác cho trường đầu raThí dụ Một bộ sưu tập có tên 3 có các tài liệu đã cho
Hoạt động tổng hợp sau đây có hai giai đoạn
Hoạt động trả về kết quả sau Để nhận được 1000 bản ghi, quá trình này mất trung bình 2 ms và là cách nhanh nhất { "_id" : 1, "subject" : "English", "score" : 88 } { "_id" : 2, "subject" : "English", "score" : 92 } { "_id" : 3, "subject" : "English", "score" : 97 } { "_id" : 4, "subject" : "English", "score" : 71 } { "_id" : 5, "subject" : "English", "score" : 79 } { "_id" : 6, "subject" : "English", "score" : 83 } 11 trong MongoDBTrả về số bản ghi trong bộ sưu tập hoặc dạng xem phù hợp với truy vấn 12. Hàm 11 đếm và cung cấp số lượng kết quả phù hợp với một truy vấn thay vì thủ tục 12Hành vi Trong các giao dịch, bạn không thể sử dụng 15 hoặc các công cụ shell 16 và 11Cụm phân mảnhNếu các tài liệu mồ côi tồn tại hoặc quá trình di chuyển đoạn dữ liệu đang diễn ra, việc sử dụng 11 mà không có biến vị ngữ truy vấn trên cụm phân đoạn có thể dẫn đến số lượng saiSử dụng chức năng 19 trên cụm phân đoạn để ngăn chặn những tình huống nàyĐể đếm tài liệu, hãy sử dụng bước 8. Ví dụ, thủ tục sau đây đếm các tài liệu trong một bộ sưu tập 1Giai đoạn 8 bằng chuỗi 9 + 0 sau đây 7Sử dụng chỉ mụcHãy xem xét một bộ sưu tập với các chỉ mục sau Khi tiến hành đếm, MongoDB chỉ có thể sử dụng chỉ mục để trả về số đếm nếu truy vấn
Ví dụ: chỉ được cung cấp chỉ mục, các thủ tục sau có thể trả về số đếm 8Giả sử truy vấn có thể sử dụng một chỉ mục, nhưng các vị từ không đạt được một phạm vi khóa chỉ mục liên tục duy nhất. Truy vấn cũng có điều kiện trên các trường bên ngoài chỉ mục Trong trường hợp đó, MongoDB phải đọc tài liệu ngoài việc sử dụng chỉ mục để cung cấp số lượng 9Trong những trường hợp như vậy, MongoDB chuyển trang tài liệu vào bộ nhớ trong lần đọc đầu tiên, cải thiện tốc độ của các cuộc gọi tiếp theo đối với cùng một thao tác đếm Độ chính xác trong trường hợp tắt máy đột xuấtSố liệu thống kê do 16 cung cấp có thể bị sai sau khi tắt 75 không sạch bằng công cụ lưu trữ 76Giữa điểm kiểm tra cuối cùng và lần tắt máy không sạch sẽ, số lượng thao tác chèn, cập nhật hoặc xóa được thực hiện sẽ xác định mức độ trôi dạt Điểm kiểm tra xảy ra trung bình cứ sau 60 giây. Mặt khác, các phiên bản 75 với các tùy chọn 78 không mặc định có thể có nhiều hoặc ít điểm kiểm tra hơnĐể khôi phục số liệu thống kê sau khi tắt máy không sạch, hãy chạy 79 trên mỗi bộ sưu tập trên 75Sau khi tắt máy không sạch
Ngắt kết nối máy kháchBắt đầu từ MongoDB 4. 2, nếu ứng dụng khách đã phát hành 11 ngắt kết nối trước khi thao tác hoàn tất, MongoDB sẽ chấm dứt 11 bằng cách sử dụng 86Đếm tất cả tài liệu trong một bộ sưu tậpĐể đếm số lượng tất cả các bản ghi trong bộ sưu tập 87, hãy sử dụng thao tác sauThao tác này tương đương như sau Đếm tất cả các tài liệu phù hợp với một truy vấnĐếm xem có bao nhiêu tài liệu trong bộ sưu tập 87 có trường 89 lớn hơn 90 7Truy vấn tương đương như sau 8Nhóm MongoDB theo số lượngCột 91 của mỗi tài liệu trong MongoDB đã được phân bổ một nhóm duy nhất theo giá trị. Kỹ thuật tổng hợp sau đó xử lý dữ liệu, tạo ra kết quả được tính toánSau đây là một ví dụ. Thiết lập cơ sở dữ liệu có thể được xem ở đây Cài đặt này sẽ được sử dụng trong tất cả các mẫu mã được trình bày trong bài viết này 10Truy vấn cho cơ sở dữ liệu trên được sử dụng là 11Liên kết để thực hiện ở trên được cung cấp để xem hoạt động của đoạn mã này Nhóm MongoDB theo Sắp xếp ĐếmTrong phần này, 92 được sử dụng, giống như 9 + 94. Nó có thể sắp xếp và đếm một nhóm người theo thứ tự tăng dần và giảm dầnMột truy vấn ví dụ được đưa ra dưới đây. Một số tài liệu đã được thêm vào bộ sưu tập dữ liệu trong ví dụ này và phương pháp 12 được sử dụng để xác định có bao nhiêu mục trong đóSau đây sẽ là truy vấn cho 12Bạn có thể truy cập vào việc thực hiện truy vấn này từ liên kết này Bước tiếp theo là 97 mảng của 98 và sử dụng hàm 92 để đếm số bản ghi được thêm vào mỗi khóa học 12Liên kết được đưa ra ở đây để xem hoạt động của truy vấn này với cấu hình cơ sở dữ liệu ở trên. Đây là cách tiếp cận đơn giản nhất đối với nhóm MongoDB bằng cách đếm mảng và sắp xếp nó Nhóm MongoDB bằng cách đếm nhiều trườngHàm 70 của MongoDB có thể đếm một số trường. Do đó, các trường được tính bằng cách sử dụng 8Dưới đây là một ví dụ trong đó dấu thời gian chỉ được sử dụng cho một mục nhập. Một số tài liệu có thể được lưu trong bộ sưu tập 72 trong ví dụ này và bạn có thể sử dụng phương pháp 12 để xem bạn có bao nhiêu tài liệu 13Việc thực hiện truy vấn này có thể được truy cập trong liên kết này Nhóm MongoDB theo ngày và số lượngKhi bạn cần đếm một tài liệu có ngày cụ thể, bạn có thể sử dụng tính năng tổng hợp số đếm và đếm một tài liệu có ngày cụ thể Đây là một minh họa. Trong ví dụ này, bạn sẽ học cách tính tổng số lượng bán và số lượng bán cho mỗi ngày trong năm 2021 Bạn có thể bao gồm các trường 74, 75, 76, 77 và 78 trong bộ sưu tập 79. Các tài liệu có thể được lấy bằng phương pháp 12 14Truy vấn cho cấu hình trên sẽ là 15Bây giờ các truy vấn cho một trường đơn lẻ và nhiều nhóm trường được đưa ra bên dưới bằng cách sử dụng các lệnh 15 và 82
Phương thức { "_id" : 1, "subject" : "English", "score" : 88 } { "_id" : 2, "subject" : "English", "score" : 92 } { "_id" : 3, "subject" : "English", "score" : 97 } { "_id" : 4, "subject" : "English", "score" : 71 } { "_id" : 5, "subject" : "English", "score" : 79 } { "_id" : 6, "subject" : "English", "score" : 83 } 83 trong MongoDBHàm 84 trả về một mảng chứa tất cả các tài liệu trong một con trỏ. Quy trình lặp qua con trỏ nhiều lần, tải tất cả tài liệu vào RAM và làm cạn kiệt con trỏXem xét ví dụ sau, sử dụng hàm 84 để biến đổi con trỏ được trả về bởi phương thức 12 0Biến 87 giữ mảng tài liệu được trả về bởi 84. Để nhận được 1000 bản ghi, quá trình này mất trung bình 18 ms{ "_id" : 1, "subject" : "English", "score" : 88 } { "_id" : 2, "subject" : "English", "score" : 92 } { "_id" : 3, "subject" : "English", "score" : 97 } { "_id" : 4, "subject" : "English", "score" : 71 } { "_id" : 5, "subject" : "English", "score" : 79 } { "_id" : 6, "subject" : "English", "score" : 83 } 89 trong MongoDBĐếm số lượng tài liệu còn lại trong một con trỏ 100 tương tự như 101, nhưng thay vì chạy truy vấn trên một trình vòng lặp mới, nó thực thi nó trên một trình vòng lặp hiện có, làm cạn kiệt nội dung của nóDạng nguyên mẫu của phương thức 100 như sau 1Để nhận được 1000 bản ghi, quá trình này mất trung bình 14 ms Bài viết này đã thảo luận chi tiết về các phép toán và phép toán 2 cũng đã được thảo luận. Đầu tiên, các loại chức năng tổng hợp khác nhau đã được thảo luận ngắn gọn với các đoạn mãSau đó, nhóm theo và 15 đã được thảo luận trong đó phân loại, tìm kiếm và nhiều lĩnh vực đã được thảo luận. Sau đó, các cách khác nhau để đếm các bản ghi trong MongoDB sẽ được thảo luận
Làm cách nào để đếm dữ liệu trong MongoDB tổng hợp?Truy vấn số lượng $ tổng hợp MongoDB
. Ở đây, chuỗi là tên của trường đầu ra có số đếm là giá trị của nó. Và, chuỗi phải là một chuỗi không trống, không bắt đầu bằng '$' và không chứa '. It transfers a document to the next stage that contains a count of the number of documents input to the stage. Here, the string is the name of the output field which has the count as its value. And, the string must be a non-empty string, not start with '$' and not contain '.
Chúng ta có thể sử dụng tính năng đếm với hàm tổng hợp trong MongoDB không?MongoDB $count Aggregation
. Có một số điều quan trọng cần lưu ý về cú pháp này. Đầu tiên, chúng tôi gọi toán tử $count và sau đó chỉ định chuỗi. The MongoDB $count operator allows us to pass a document to the next phase of the aggregation pipeline that contains a count of the documents. There a couple of important things to note about this syntax: First, we invoke the $count operator and then specify the string.
Làm cách nào để có được tổng số 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.
Làm cách nào để sử dụng số lượng trong nhóm trong MongoDB?Chúng ta có thể sử dụng đoạn mã sau để nhóm theo trường 'vị trí' và đếm số lần xuất hiện của từng vị trí. . Vị trí 'Chuyển tiếp' xảy ra 1 lần Vị trí 'Guard' xảy ra 3 lần Vị trí 'Trung tâm' xuất hiện 1 lần |