Hướng dẫn mongodb aggregate sum of field - mongodb tổng hợp của trường
Tài liệu về nhà → Hướng dẫn sử dụng MongoDB → MongoDB Manual Show 2Changed trong phiên bản 5.0.Changed in version 5.0. Tính toán và trả về tổng tập thể của các giá trị số. 2 bỏ qua các giá trị không phải là số. 2 ignores non-numeric values.
Trong MongoDB 3.2 và trước đó, 2 chỉ có sẵn trong giai đoạn 8. 2 is available in the
8 stage only.Khi được sử dụng trong các giai đoạn 6, 7, 8 và 5, 2 có cú pháp này: 2 has this syntax:Khi được sử dụng trong các giai đoạn được hỗ trợ khác, 2 có một trong hai cú pháp: 2 has one of two syntaxes:
Để biết thêm thông tin về biểu thức, xem biểu thức. Kết quả sẽ có cùng loại với đầu vào ngoại trừ khi nó không thể được biểu diễn chính xác trong loại đó. Trong những trường hợp này:
Nếu được sử dụng trên một trường chứa cả các giá trị số và không số lượng, 2 bỏ qua các giá trị không phải là số và trả về tổng của các giá trị số. 2 ignores the non-numeric values and returns the sum of the numeric values.Nếu được sử dụng trên một trường không tồn tại trong bất kỳ tài liệu nào trong bộ sưu tập, 2 trả về 8 cho trường đó. 2 returns
8 for that field.Nếu tất cả các toán hạng là không phải là số, 2 trả về 8. 2 returns 8.Trong giai đoạn 8, nếu biểu thức được giải quyết thành một mảng, 2 coi toán hạng là giá trị phi hình số. 2 treats the operand as a non-numerical value.Trong các giai đoạn được hỗ trợ khác:
Xem xét bộ sưu tập 5 với các tài liệu sau:
Nhóm các tài liệu vào ngày và năm của trường 6, hoạt động sau đây sử dụng bộ tích lũy 2 để tính tổng số tiền và số lượng cho mỗi nhóm tài liệu. 2 accumulator to compute the total amount and the count for each group of documents.
Hoạt động trả về các kết quả sau:
Sử dụng 2 trên trường không tồn tại trả về giá trị 8. Hoạt động sau đây cố gắng 2 trên 1: 2 on a non-existent field returns a value of 8. The following operation attempts to 2 on 1:
Hoạt động trả về:
Bộ tích lũy tập hợp 2 có thể được sử dụng thay cho 3 trong giai đoạn 8.MẹoXem thêm:Bộ sưu tập 5 chứa các tài liệu sau:
Ví dụ sau đây sử dụng 2 trong giai đoạn 1 để tính tổng số điểm đố, tổng điểm trong phòng thí nghiệm và tổng số cuối cùng và giữa kỳ: 2 in the 1 stage to calculate the total quiz scores, the total lab scores, and the total of the final and the midterm:
Kết quả hoạt động trong các tài liệu sau:
Mới trong phiên bản 5.0. Tạo một bộ sưu tập 8 có chứa doanh số bán bánh ở các bang California ( 9) và Washington ( 0):
Ví dụ này sử dụng 2 trong giai đoạn 5 để xuất tổng số 3 của bánh được bán trong mỗi 4: 2 in the
5 stage to output the sum of the 3 of cakes sold in each 4: 0Trong ví dụ:
Trong đầu ra này, tổng của các giá trị 3 cho 9 và 0 được hiển thị trong trường 4:
1Làm cách nào để tổng hợp các trường trong MongoDB?Nếu được sử dụng trên một trường chứa cả các giá trị số và không số lượng, $ sum bỏ qua các giá trị không phải là số và trả về tổng của các giá trị số. Nếu được sử dụng trên một trường không tồn tại trong bất kỳ tài liệu nào trong bộ sưu tập, $ sum trả về 0 cho trường đó. Nếu tất cả các toán hạng là không phải là số, $ sum trả về 0.$sum ignores the non-numeric values and returns the sum of the numeric values. If used on a field that does not exist in any document in the collection, $sum returns 0 for that field. If all operands are non-numeric, $sum returns 0 .
Làm thế nào để bạn tổng hợp giá trị của một khóa trên tất cả các tài liệu trong bộ sưu tập MongoDB?Để có được tổng giá trị của khóa trên tất cả các tài liệu trong bộ sưu tập MongoDB, bạn có thể sử dụng tổng hợp ().use aggregate().
Làm thế nào để MongoDB tính tổng tiền lương?Toán tử $ sum trả về tổng của tất cả các giá trị số của các tài liệu trong bộ sưu tập trong MongoDB.Trên đây sẽ tạo bộ sưu tập (hoặc bảng) (nếu bộ sưu tập đã tồn tại, nó sẽ chèn các tài liệu vào đó).Bước 2.1 - Chúng tôi sẽ nhóm nhân viên theo FirstName và tìm tổng tiền lương của mỗi nhóm.. Above will create collection (or table) (if collection already exists it will insert documents in it). Step 2.1 - We will group employee by firstName and find sum of salary of each group.
Tập hợp có nhanh trong MongoDB không?Trên các bộ sưu tập lớn hàng triệu tài liệu, tập hợp của MongoDB được chứng minh là tồi tệ hơn nhiều so với Elaticsearch.Hiệu suất xấu đi với kích thước thu thập khi MongoDB bắt đầu sử dụng đĩa do RAM hệ thống hạn chế.Giai đoạn tra cứu $ được sử dụng mà không có chỉ số có thể rất chậm.MongoDB's aggregation was shown to be much worse than Elasticsearch. Performance worsens with collection size when MongoDB starts using the disk due to limited system RAM. The $lookup stage used without indexes can be very slow. |