Cách nhóm sau khi thư giãn MongoDB
Toán tử giai đoạn $group MongoDB nhóm các tài liệu theo một số biểu thức được chỉ định và nhóm tài liệu cho từng nhóm riêng biệt. Trường _id trong tài liệu đầu ra chứa nhóm riêng biệt theo khóa. Các tài liệu đầu ra cũng có thể chứa các trường được tính toán chứa các giá trị của một số biểu thức bộ tích lũy được nhóm theo trường _id của $group. Toán tử này không đặt hàng các tài liệu đầu ra của nó Show
cú pháp { $group: { _id:
Những điểm cần nhớ
Hóa đơn lấy mẫu
Ví dụ 1. nhóm $Ví dụ sau nhóm theo trường ngày lập hóa đơn và hiển thị tổng chi phí, số lượng trung bình và số lượng hóa đơn trong cùng một ngày
đầu ra { "_id" : "17/12/2014", "totalCost" : 200, "avgQty" : 10, "count" : 1 } { "_id" : "13/04/2014", "totalCost" : 300, "avgQty" : 30, "count" : 1 } { "_id" : "05/12/2014", "totalCost" : 320, "avgQty" : 13.333333333333334, "count" : 3 } { "_id" : "07/02/2014", "totalCost" : 200, "avgQty" : 25, "count" : 1 } { "_id" : "02/02/2014", "totalCost" : 400, "avgQty" : 20, "count" : 2 } Ở đây từ kết quả cho thấy rằng, tài liệu cho trường ngày lập hóa đơn đã được nhóm lại và hiển thị tổng chi phí, số lượng trung bình và số lượng hóa đơn được thực hiện cho ngày đó Ví dụ-2. $group trên nhiều khóaVí dụ sau nhóm theo ngày lập hóa đơn, sau đó theo trường mục và hiển thị tổng chi phí, số lượng trung bình và số lượng hóa đơn trong cùng một ngày
đầu ra { "_id" : { "inv_date" : "17/12/2014", "item" : "mks" }, "totalCost" : 200, "avgQty" : 10, "count" : 1 } { "_id" : { "inv_date" : "13/04/2014", "item" : "doz" }, "totalCost" : 300, "avgQty" : 30, "count" : 1 } { "_id" : { "inv_date" : "05/12/2014", "item" : "amp" }, "totalCost" : 80, "avgQty" : 10, "count" : 1 } { "_id" : { "inv_date" : "07/02/2014", "item" : "amp" }, "totalCost" : 200, "avgQty" : 25, "count" : 1 } { "_id" : { "inv_date" : "05/12/2014", "item" : "sam" }, "totalCost" : 240, "avgQty" : 15, "count" : 2 } { "_id" : { "inv_date" : "02/02/2014", "item" : "doz" }, "totalCost" : 400, "avgQty" : 20, "count" : 2 } Từ kết quả trên cho thấy, chứng từ của hóa đơn ngày 12/05/2014 và ngày 02/02/2014 có cùng một mặt hàng, hai trường này gộp lại tạo thành một nhóm Ví dụ-3. $group trên nhiều khóa với $matchVí dụ sau nhóm theo ngày lập hóa đơn, sau đó theo trường mục và hiển thị tổng chi phí, số lượng trung bình và số lượng hóa đơn trong cùng một ngày đối với những chứng từ có ngày lập hóa đơn là 12/05/2014
đầu ra { "_id" : { "inv_date" : "05/12/2014", "item" : "amp" }, "totalCost" : 80, "avgQty" : 10, "count" : 1 } { "_id" : { "inv_date" : "05/12/2014", "item" : "sam" }, "totalCost" : 240, "avgQty" : 15, "count" : 2 } Từ kết quả trên cho thấy, chứng từ lập hóa đơn ngày 12/05/2014 có 3 hóa đơn nhưng cùng một tổ hợp mặt hàng đã tạo thành một nhóm Ví dụ-4. $group giá trị riêng biệtThao tác tổng hợp sau đây sử dụng giai đoạn $group để nhóm ngày lập hóa đơn của các tài liệu theo mục Thư giãn trong tổng hợp là gì?Ví dụ. thư giãn $
. Ở đây từ kết quả cho thấy rằng, mỗi tài liệu giống hệt với tài liệu đầu vào ngoại trừ giá trị của trường kích thước chứa giá trị từ mảng kích thước ban đầu. used to output a document for each element in the sizes array. Here from the result it shows that, each document is identical to the input document except for the value of the sizes field that contain the value from the original sizes array.
Làm cách nào bạn có thể nhóm theo một giá trị cụ thể trong MongoDB?Chúng tôi có thể nhóm theo một trường cũng như nhiều trường từ bộ sưu tập, chúng tôi có thể sử dụng toán tử $group trong MongoDB để nhóm các trường từ bộ sưu tập and returns the new document as result. We are using $avg, $sum, $max, $min, $push, $last, $first and $addToSet operator with group by in MongoDB.
$root trong MongoDB là gì?$$ROOT. Biến $$ROOT chứa tài liệu nguồn cho nhóm .
Toán tử nào có thể đảo ngược tác động của thao tác thư giãn kép?Mở tài liệu này ra hai lần sẽ có 6 tài liệu. Bây giờ để kết hợp chúng lại, bạn có thể sử dụng toán tử $push . |