Khi được sử dụng trong giai đoạn
{ $sum: }4,
{ $sum: }2 có cú pháp sau đây và trả về tổng chung của tất cả các giá trị số có được từ việc áp dụng một biểu thức đã chỉ định cho từng tài liệu trong một nhóm tài liệu chia sẻ cùng một nhóm theo khóa
sao chép
{ $sum: }
Khi được sử dụng trong các giai đoạn được hỗ trợ khác,
{ $sum: }2 trả về tổng của biểu thức đã chỉ định hoặc danh sách các biểu thức cho mỗi tài liệu và có một trong hai cú pháp
{ $sum: }
2 có một biểu thức được chỉ định làm toán hạng của nósao chép
{ $sum: }
{ $sum: }
2 có một danh sách các biểu thức được chỉ định làm toán hạng của nósao chép
{ $sum: [ , ... ] }
Để biết thêm thông tin về biểu thức, hãy xem Biểu thức .
Cư xử¶
Các trường không phải là số hoặc không tồn tại¶
Nếu được sử dụng trên một trường chứa cả giá trị số và không phải số, thì
{ $sum: }2 sẽ bỏ qua các giá trị không phải 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: }2 trả về
{ $sum: }01 cho trường đó
Nếu tất cả các toán hạng không phải là số,
{ $sum: }2 trả về
{ $sum: }01Ví dụ Giá trị trườngKết quả
{ $sum: }04
{ $sum: }05
{ $sum: }06
{ $sum: }04
{ $sum: }08
{ $sum: }09
{ $sum: }04
{ $sum: }01
{ $sum: }01
Toán hạng mảng¶
Trong giai đoạn
{ $sum: }4, nếu biểu thức phân giải thành một mảng, thì
{ $sum: }2 coi toán hạng là một giá trị không phải là số
Trong các giai đoạn được hỗ trợ khác
- Với một biểu thức duy nhất làm toán hạng của nó, nếu biểu thức phân giải thành một mảng, thì
{ $sum: }
2 sẽ đi qua mảng để thao tác trên các phần tử số của mảng để trả về một giá trị duy nhất - Với một danh sách các biểu thức là toán hạng của nó, nếu bất kỳ biểu thức nào phân giải thành một mảng, thì
{ $sum: }
2 không đi qua mảng mà thay vào đó coi mảng là một giá trị không phải là số
Ví dụ¶
Sử dụng trong Giai đoạn { $sum: }
4¶
Xem xét một bộ sưu tập
{ $sum: }08 với các tài liệu sau
sao chép
{ $sum: }0
Nhóm các tài liệu theo ngày và năm của trường
{ $sum: }09, thao tác sau đây sử dụng bộ tích lũy
{ $sum: }2 để tính tổng số lượng và số lượng cho từng nhóm tài liệu
sao chép
{ $sum: }0
Hoạt động trả về kết quả sau
sao chép
{ $sum: }2
Sử dụng
{ $sum: }2 trên trường không tồn tại sẽ trả về giá trị là
{ $sum: }01. Các hoạt động sau đây cố gắng để
{ $sum: }2 trên
{ $sum: }24
sao chép
{ $sum: }7
hoạt động trở lại
sao chép
{ $sum: }8
Sử dụng trong Giai đoạn { $sum: }
5¶
Một bộ sưu tập
{ $sum: }26 chứa các tài liệu sau
sao chép
{ $sum: }1
Ví dụ sau sử dụng
{ $sum: }2 trong giai đoạn
{ $sum: }5 để tính tổng điểm bài kiểm tra, tổng điểm phòng thí nghiệm và tổng điểm cuối kỳ và giữa kỳ
sao chép
{ $sum: }4
Kết quả hoạt động trong các tài liệu sau
sao chép
{ $sum: }0
Trong các giai đoạn được hỗ trợ khác
- Với một biểu thức duy nhất làm toán hạng của nó, nếu biểu thức phân giải thành một mảng, thì
{ $sum: }
2 sẽ đi qua mảng để thao tác trên các phần tử số của mảng để trả về một giá trị duy nhất - Với một danh sách các biểu thức là toán hạng của nó, nếu bất kỳ biểu thức nào phân giải thành một mảng, thì
{ $sum: }
2 không đi qua mảng mà thay vào đó coi mảng là một giá trị không phải là số
← $subtract [tổng hợp] $switch [tổng hợp] →
© MongoDB, Inc 2008-nay. MongoDB, Mongo và logo chiếc lá là các nhãn hiệu đã đăng ký của MongoDB, Inc