Bao gồm $group
giai đoạn chuyển tiếp của nhà điều hành sau $project
bước như sau:
db.profil.aggregate([
{ "$match":{ "typ": "Organisation" } },
{ "$project": {
"fooos": { "$size": "$foos" }
} },
{ "$group": {
"_id": null,
"count": {
"$sum": "$fooos"
}
} }
])
Thao tác này sẽ nhóm tất cả các tài liệu đầu vào từ $project
trước đó giai đoạn và áp dụng biểu thức tích lũy $sum
trên fooos
trường trong nhóm để lấy tổng số (sử dụng ví dụ cuối cùng của bạn):
Điều này cũng có thể được thực hiện bằng cách chuyển $project
đường ống dẫn như:
db.profil.aggregate([
{ "$match": { "typ": "Organisation" } },
{ "$group": {
"_id": null,
"count": {
"$sum": { "$size": "$foos" }
}
} }
])
Đầu ra
/* 0 */
{
"result" : [
{
"_id" : null,
"count" : 24
}
],
"ok" : 1
}