Trả về một giá trị từ tài liệu đầu tiên cho mỗi nhóm. Thứ tự chỉ được xác định nếu các tài liệu theo một thứ tự xác định Show Chỉ có ở giai đoạn $group . $ cuối cùngTrả về một giá trị từ tài liệu cuối cùng cho mỗi nhóm. Thứ tự chỉ được xác định nếu các tài liệu theo một thứ tự xác định Chỉ có ở giai đoạn $group . tối đa $Trả về giá trị biểu thức cao nhất cho mỗi nhóm 在 3. 2 版更改. Có sẵn trong cả $group và $project stages. $minTrả về giá trị biểu thức thấp nhất cho mỗi nhóm 在 3. 2 版更改. Có sẵn trong cả $group và $project stages. đẩy $Trả về một mảng các giá trị biểu thức cho mỗi nhóm Chỉ có ở giai đoạn $group . $addToSetTrả về một mảng các giá trị biểu thức duy nhất cho mỗi nhóm. Thứ tự của các phần tử mảng không được xác định Chỉ có ở giai đoạn $group . $stdDevPopTrả về độ lệch chuẩn tổng thể của các giá trị đầu vào 在 3. 2 版更改. Có sẵn trong cả $group và $project stages. $stdDevSampTrả về độ lệch chuẩn mẫu của các giá trị đầu vào 在 3. 2 版更改. Có sẵn trong cả $group và $project stages. $group Toán tử và bộ nhớ¶Giai đoạn $group có giới hạn RAM là 100 megabyte. Theo mặc định, nếu giai đoạn vượt quá giới hạn này, $group sẽ tạo ra lỗi. Tuy nhiên, để cho phép xử lý các tập dữ liệu lớn, hãy đặt tùy chọn allowDiskUse thành true to enable $group operations to write to temporary files. See db. thu thập. phương thức tổng hợp() và lệnh aggregate để biết chi tiết. 在 2. 6 版更改. MongoDB giới thiệu giới hạn 100 megabyte RAM cho giai đoạn $group cũng như allowDiskUse option to handle operations for large datasets. Ví dụ¶Tính Đếm, Tổng và Trung bình¶Cho một bộ sưu tập bán hàng với các tài liệu sau. { "_id" : 1, "item" : "abc", "price" : 10, "quantity" : 2, "date" : ISODate("2014-03-01T08:00:00Z") } { "_id" : 2, "item" : "jkl", "price" : 20, "quantity" : 1, "date" : ISODate("2014-03-01T09:00:00Z") } { "_id" : 3, "item" : "xyz", "price" : 5, "quantity" : 10, "date" : ISODate("2014-03-15T09:00:00Z") } { "_id" : 4, "item" : "xyz", "price" : 5, "quantity" : 20, "date" : ISODate("2014-04-04T11:21:39.736Z") } { "_id" : 5, "item" : "abc", "price" : 10, "quantity" : 10, "date" : ISODate("2014-04-04T21:23:13.331Z") } Nhóm theo Tháng, Ngày và Năm¶Thao tác tổng hợp sau đây sử dụng giai đoạn $group để nhóm các tài liệu theo tháng, ngày và năm, đồng thời tính tổng giá và . db.sales.aggregate( [ { $group : { _id : { month: { $month: "$date" }, day: { $dayOfMonth: "$date" }, year: { $year: "$date" } }, totalPrice: { $sum: { $multiply: [ "$price", "$quantity" ] } }, averageQuantity: { $avg: "$quantity" }, count: { $sum: 1 } } } ] ) Hoạt động trả về kết quả sau { "_id" : { "month" : 3, "day" : 15, "year" : 2014 }, "totalPrice" : 50, "averageQuantity" : 10, "count" : 1 } { "_id" : { "month" : 4, "day" : 4, "year" : 2014 }, "totalPrice" : 200, "averageQuantity" : 15, "count" : 2 } { "_id" : { "month" : 3, "day" : 1, "year" : 2014 }, "totalPrice" : 40, "averageQuantity" : 1.5, "count" : 2 } Nhóm theo null ¶Thao tác tổng hợp sau đây chỉ định một nhóm _id của null, calculating the total price and the average quantity as well as counts for all documents in the collection: db.sales.aggregate( [ { $group : { _id : null, totalPrice: { $sum: { $multiply: [ "$price", "$quantity" ] } }, averageQuantity: { $avg: "$quantity" }, count: { $sum: 1 } } } ] ) Hoạt động trả về kết quả sau { "_id" : null, "totalPrice" : 290, "averageQuantity" : 8.6, "count" : 5 } Truy xuất các giá trị riêng biệt¶Cho một bộ sưu tập bán hàng với các tài liệu sau. { "_id" : 1, "item" : "abc", "price" : 10, "quantity" : 2, "date" : ISODate("2014-03-01T08:00:00Z") } { "_id" : 2, "item" : "jkl", "price" : 20, "quantity" : 1, "date" : ISODate("2014-03-01T09:00:00Z") } { "_id" : 3, "item" : "xyz", "price" : 5, "quantity" : 10, "date" : ISODate("2014-03-15T09:00:00Z") } { "_id" : 4, "item" : "xyz", "price" : 5, "quantity" : 20, "date" : ISODate("2014-04-04T11:21:39.736Z") } { "_id" : 5, "item" : "abc", "price" : 10, "quantity" : 10, "date" : ISODate("2014-04-04T21:23:13.331Z") } Thao tác tổng hợp sau đây sử dụng giai đoạn $group để nhóm các tài liệu theo mục nhằm truy xuất các giá trị mục riêng biệt. db.sales.aggregate( [ { $group : { _id : "$item" } } ] ) Hoạt động trả về kết quả sau { "_id" : "xyz" } { "_id" : "jkl" } { "_id" : "abc" } Dữ liệu xoay vòng¶Một bộ sưu tập sách chứa các tài liệu sau. ________số 8 Nhóm tiêu đề của tác giả ¶Thao tác tổng hợp sau xoay vòng dữ liệu trong bộ sưu tập sách để có các tên sách được nhóm theo tác giả. { "_id" : 1, "item" : "abc", "price" : 10, "quantity" : 2, "date" : ISODate("2014-03-01T08:00:00Z") } { "_id" : 2, "item" : "jkl", "price" : 20, "quantity" : 1, "date" : ISODate("2014-03-01T09:00:00Z") } { "_id" : 3, "item" : "xyz", "price" : 5, "quantity" : 10, "date" : ISODate("2014-03-15T09:00:00Z") } { "_id" : 4, "item" : "xyz", "price" : 5, "quantity" : 20, "date" : ISODate("2014-04-04T11:21:39.736Z") } { "_id" : 5, "item" : "abc", "price" : 10, "quantity" : 10, "date" : ISODate("2014-04-04T21:23:13.331Z") }0 Hoạt động trả về các tài liệu sau { "_id" : 1, "item" : "abc", "price" : 10, "quantity" : 2, "date" : ISODate("2014-03-01T08:00:00Z") } { "_id" : 2, "item" : "jkl", "price" : 20, "quantity" : 1, "date" : ISODate("2014-03-01T09:00:00Z") } { "_id" : 3, "item" : "xyz", "price" : 5, "quantity" : 10, "date" : ISODate("2014-03-15T09:00:00Z") } { "_id" : 4, "item" : "xyz", "price" : 5, "quantity" : 20, "date" : ISODate("2014-04-04T11:21:39.736Z") } { "_id" : 5, "item" : "abc", "price" : 10, "quantity" : 10, "date" : ISODate("2014-04-04T21:23:13.331Z") }1 Nhóm tài liệu của tác giả ¶Thao tác tổng hợp sau đây sử dụng biến hệ thống $$ROOT để nhóm các tài liệu theo tác giả. Tài liệu kết quả không được vượt quá giới hạn BSON Tài liệu Kích thước . { "_id" : 1, "item" : "abc", "price" : 10, "quantity" : 2, "date" : ISODate("2014-03-01T08:00:00Z") } { "_id" : 2, "item" : "jkl", "price" : 20, "quantity" : 1, "date" : ISODate("2014-03-01T09:00:00Z") } { "_id" : 3, "item" : "xyz", "price" : 5, "quantity" : 10, "date" : ISODate("2014-03-15T09:00:00Z") } { "_id" : 4, "item" : "xyz", "price" : 5, "quantity" : 20, "date" : ISODate("2014-04-04T11:21:39.736Z") } { "_id" : 5, "item" : "abc", "price" : 10, "quantity" : 10, "date" : ISODate("2014-04-04T21:23:13.331Z") }2 Hoạt động trả về các tài liệu sau { "_id" : 1, "item" : "abc", "price" : 10, "quantity" : 2, "date" : ISODate("2014-03-01T08:00:00Z") } { "_id" : 2, "item" : "jkl", "price" : 20, "quantity" : 1, "date" : ISODate("2014-03-01T09:00:00Z") } { "_id" : 3, "item" : "xyz", "price" : 5, "quantity" : 10, "date" : ISODate("2014-03-15T09:00:00Z") } { "_id" : 4, "item" : "xyz", "price" : 5, "quantity" : 20, "date" : ISODate("2014-04-04T11:21:39.736Z") } { "_id" : 5, "item" : "abc", "price" : 10, "quantity" : 10, "date" : ISODate("2014-04-04T21:23:13.331Z") }3 参见 The 邮政编码数据集的聚合 tutorial provides an extensive example of the $group operator in a common use case. Tài nguyên bổ sung¶
← $unwind (tập hợp) $sample (tập hợp) → © MongoDB, Inc 2008-2017. MongoDB, Mongo và logo chiếc lá là các nhãn hiệu đã đăng ký của MongoDB, Inc |