Hướng dẫn can we use group inside project mongodb? - chúng ta có thể sử dụng nhóm bên trong dự án mongodb không?
Tôi đang cố gắng để có được số từ khóa cùng với 7, 8 và 9. DB của tôi là Show
Tôi đã thử 0 với 1
Và nó cho tôi một kết quả như
Nhưng tôi cũng cần dữ liệu thực tế trong kết quả, ví dụ: 9, 3, 4, 5. Tôi đã cố gắng hiển thị 6 và từ khóa bằng cách sử dụng 0 nhưng nó chỉ hiển thị 8 và tổng số. Những gì tôi đang thiếu? Giai đoạn đầu tiên: → MongoDB Manual 1 sử dụng biến hệ thống 49 để nhóm toàn bộ tài liệu của các tác giả. Giai đoạn này chuyển các tài liệu sau đây cho giai đoạn tiếp theo:The 1 stage separates documents into groups according to a "group key". The output is one document for each unique group key.Giai đoạn thứ hai:usage examples. 50 thêm một trường vào đầu ra chứa tổng số bản sao của sách cho mỗi tác giả.Ghi chúaccumulator expressions. Hoạt động tổng hợp sau đây xoay vòng dữ liệu trong bộ sưu tập db.keyword.aggregate([ { $group: { _id: "$llcId", total: {$sum: 1}, } }, { $project: { categoryId: 1, total: 1 } } ]) 45 để có các tiêu đề được nhóm bởi các tác giả.Hoạt động trả về các tài liệu sau: does not order its output documents. Các tài liệu hoạt động tổng hợp sau đây bởi 47: 1 stage has the following prototype form:
Ghi chúaccumulator operators can accept any valid 3. For more information on expressions, see Expressions.Toán tử 4 phải là một trong các toán tử tích lũy sau:Đã thay đổi trong phiên bản 5.0.
Có sẵn trong các giai đoạn 1 và 7. 1 stage has a limit of 100 megabytes of RAM. By default, if the stage exceeds this limit, 1 returns an error. To allow more space for
stage processing, use the allowDiskUse option to enable aggregation pipeline stages to write data to temporary files.Trả về một tập hợp của các trường db.sales.aggregate( [ { $group: { _id: null, count: { $count: { } } } }] )4 dưới cùng trong một nhóm, theo thứ tự sắp xếp được chỉ định.Trả về số lượng tài liệu trong một nhóm.Khác biệt với giai đoạn đường ống 7. 1. There are optimizations that you can make manually and optimizations MongoDB makes internally.Mới trong phiên bản 5.0: Có sẵn trong các giai đoạn 1 và 7. 16 by the same field and the 1 stage only uses the 1
accumulator operator, consider adding an index on the grouped field which matches the sort order. In some cases, the 1 stage can use the index to quickly find the first document of each group.Trả về một giá trị từ tài liệu đầu tiên cho mỗi nhóm. Đặt hàng chỉ được xác định nếu các tài liệu được sắp xếp.Khác biệt với toán tử mảng 1.
Trả về một tập hợp của các yếu tố 4 đầu tiên trong một nhóm. Chỉ có ý nghĩa khi các tài liệu theo thứ tự xác định. Khác biệt với toán tử mảng 4. 1 stages if either:
Khác biệt với toán tử mảng 9.Trong 25, hãy tạo một bộ sưu tập mẫu có tên 26 với các tài liệu sau: 25, create a sample collection named 26 with the following documents:
Hoạt động tổng hợp sau đây sử dụng giai đoạn 1 để đếm số lượng tài liệu trong bộ sưu tập 26: 1 stage to count the number of documents in the 26 collection:
Hoạt động trả về kết quả sau:
Hoạt động tổng hợp này tương đương với câu lệnh SQL sau:
MẹoHoạt động tổng hợp sau đây sử dụng giai đoạn 1 để truy xuất các giá trị mục riêng biệt từ bộ sưu tập 26: 1 stage to retrieve the distinct item values from the 26 collection:
Hoạt động trả về kết quả sau: 0Hoạt động tổng hợp này tương đương với câu lệnh SQL sau: 1Mẹo 1 stage groups the documents by 31 to retrieve the distinct item values. This stage returns the 34 for each item.Second Stage:The
35 stage filters the resulting documents to only return items with a 34 greater than or equal to 100.Hoạt động trả về kết quả sau: 2Hoạt động tổng hợp này tương đương với câu lệnh SQL sau: 3MẹoHoạt động tổng hợp sau đây sử dụng giai đoạn { $group: { _id:
|
db.sales.insertMany([ |
{ "_id" : 1, "item" : "abc", "price" : NumberDecimal("10"), "quantity" : NumberInt("2"), "date" : ISODate("2014-03-01T08:00:00Z") }, |
{ "_id" : 2, "item" : "jkl", "price" : NumberDecimal("20"), "quantity" : NumberInt("1"), "date" : ISODate("2014-03-01T09:00:00Z") }, |
{ "_id" : 3, "item" : "xyz", "price" : NumberDecimal("5"), "quantity" : NumberInt( "10"), "date" : ISODate("2014-03-15T09:00:00Z") }, |
{ "_id" : 4, "item" : "xyz", "price" : NumberDecimal("5"), "quantity" : NumberInt("20") , "date" : ISODate("2014-04-04T11:21:39.736Z") }, |
{ "_id" : 5, "item" : "abc", "price" : NumberDecimal("10"), "quantity" : NumberInt("10") , "date" : ISODate("2014-04-04T21:23:13.331Z") }, |
{ "_id" : 6, "item" : "def", "price" : NumberDecimal("7.5"), "quantity": NumberInt("5" ) , "date" : ISODate("2015-06-04T05:08:13Z") }, |
{ "_id" : 7, "item" : "def", "price" : NumberDecimal("7.5"), "quantity": NumberInt("10") , "date" : ISODate("2015-09-10T08:43:00Z") }, |
{ "_id" : 8, "item" : "abc", "price" : NumberDecimal("10"), "quantity" : NumberInt("5" ) , "date" : ISODate("2016-02-06T20:20:13Z") }, |
]) |
Các tài liệu của các nhóm hoạt động tổng hợp sau đây theo trường
db.keyword.aggregate([
{
$group: {
_id: "$llcId",
total: {$sum: 1},
}
},
{
$project: {
categoryId: 1, total: 1
}
}
])
31, tính toán tổng số tiền bán cho mỗi mặt hàng và chỉ trả lại các mặt hàng có tổng số tiền bán hàng lớn hơn hoặc bằng 100:db.keyword.aggregate([
{
$group: {
_id: "$llcId",
total: {$sum: 1},
}
},
{
$project: {
categoryId: 1, total: 1
}
}
])
5Giai đoạn đầu tiên: Giai đoạn { $group: { _id: , // Group key : { : }, ... } }
1 nhóm các tài liệu bằng db.keyword.aggregate([
{
$group: {
_id: "$llcId",
total: {$sum: 1},
}
},
{
$project: {
categoryId: 1, total: 1
}
}
])
31 để truy xuất các giá trị vật phẩm riêng biệt. Giai đoạn này trả về db.keyword.aggregate([
{
$group: {
_id: "$llcId",
total: {$sum: 1},
}
},
{
$project: {
categoryId: 1, total: 1
}
}
])
34 cho mỗi mục. Giai đoạn thứ hai: Giai đoạn db.keyword.aggregate([
{
$group: {
_id: "$llcId",
total: {$sum: 1},
}
},
{
$project: {
categoryId: 1, total: 1
}
}
])
35 lọc các tài liệu kết quả chỉ trả về các mục với db.keyword.aggregate([
{
$group: {
_id: "$llcId",
total: {$sum: 1},
}
},
{
$project: {
categoryId: 1, total: 1
}
}
])
34 lớn hơn hoặc bằng 100.{ $group: { _id: , // Group key : { : }, ... } }
1 stage groups the documents by date and calculates the total sale amount, average
quantity, and total count of the documents in each group.Third Stage:The db.keyword.aggregate([
{
$group: {
_id: "$llcId",
total: {$sum: 1},
}
},
{
$project: {
categoryId: 1, total: 1
}
}
])
41 stage sorts the results by the total sale amount for each group in descending order.Xem thêm:
db.keyword.aggregate([
{
$group: {
_id: "$llcId",
total: {$sum: 1},
}
},
{
$project: {
categoryId: 1, total: 1
}
}
])
6Hoạt động tổng hợp này tương đương với câu lệnh SQL sau:
db.keyword.aggregate([
{
$group: {
_id: "$llcId",
total: {$sum: 1},
}
},
{
$project: {
categoryId: 1, total: 1
}
}
])
7
Mẹo
db.keyword.aggregate([
{
$group: {
_id: "$llcId",
total: {$sum: 1},
}
},
{
$project: {
categoryId: 1, total: 1
}
}
])
8Hoạt động trả về kết quả sau:
db.keyword.aggregate([
{
$group: {
_id: "$llcId",
total: {$sum: 1},
}
},
{
$project: {
categoryId: 1, total: 1
}
}
])
9Hoạt động tổng hợp này tương đương với câu lệnh SQL sau:
{ "_id" : "CL1KJQ", "total" : 17 }
{ "_id" : "CL1KKW", "total" : 30 }
0Mẹo
25, create a sample collection named db.keyword.aggregate([
{
$group: {
_id: "$llcId",
total: {$sum: 1},
}
},
{
$project: {
categoryId: 1, total: 1
}
}
])
db.keyword.aggregate([
{
$group: {
_id: "$llcId",
total: {$sum: 1},
}
},
{
$project: {
categoryId: 1, total: 1
}
}
])
45 with the following documents:{ "_id" : "CL1KJQ", "total" : 17 }
{ "_id" : "CL1KKW", "total" : 30 }
1Hoạt động tổng hợp sau đây sử dụng giai đoạn
{ $group: { _id: , // Group key : { : }, ... } }
1 để truy xuất các giá trị mục riêng biệt từ bộ sưu tập db.keyword.aggregate([
{
$group: {
_id: "$llcId",
total: {$sum: 1},
}
},
{
$project: {
categoryId: 1, total: 1
}
}
])
26:{ "_id" : "CL1KJQ", "total" : 17 }
{ "_id" : "CL1KKW", "total" : 30 }
2Các tài liệu của các nhóm hoạt động tổng hợp sau đây theo trường
db.keyword.aggregate([
{
$group: {
_id: "$llcId",
total: {$sum: 1},
}
},
{
$project: {
categoryId: 1, total: 1
}
}
])
31, tính toán tổng số tiền bán cho mỗi mặt hàng và chỉ trả lại các mặt hàng có tổng số tiền bán hàng lớn hơn hoặc bằng 100:{ "_id" : "CL1KJQ", "total" : 17 }
{ "_id" : "CL1KKW", "total" : 30 }
3Giai đoạn đầu tiên: Giai đoạn
{ $group: { _id: , // Group key : { : }, ... } }
1 nhóm các tài liệu bằng db.keyword.aggregate([
{
$group: {
_id: "$llcId",
total: {$sum: 1},
}
},
{
$project: {
categoryId: 1, total: 1
}
}
])
31 để truy xuất các giá trị vật phẩm riêng biệt. Giai đoạn này trả về db.keyword.aggregate([
{
$group: {
_id: "$llcId",
total: {$sum: 1},
}
},
{
$project: {
categoryId: 1, total: 1
}
}
])
34 cho mỗi mục. Giai đoạn thứ hai: Giai đoạn db.keyword.aggregate([
{
$group: {
_id: "$llcId",
total: {$sum: 1},
}
},
{
$project: {
categoryId: 1, total: 1
}
}
])
35 lọc các tài liệu kết quả chỉ trả về các mục với db.keyword.aggregate([
{
$group: {
_id: "$llcId",
total: {$sum: 1},
}
},
{
$project: {
categoryId: 1, total: 1
}
}
])
34 lớn hơn hoặc bằng 100.{ "_id" : "CL1KJQ", "total" : 17 }
{ "_id" : "CL1KKW", "total" : 30 }
4Xem thêm:Đường ống sau đây tính toán tổng số tiền bán hàng, số lượng bán hàng trung bình và số lượng bán hàng cho mỗi ngày trong năm 2014: uses the
db.keyword.aggregate([
{
$group: {
_id: "$llcId",
total: {$sum: 1},
}
},
{
$project: {
categoryId: 1, total: 1
}
}
])
49 system variable to group the entire documents by authors. This stage passes the following
documents to the next stage:{ "_id" : "CL1KJQ", "total" : 17 }
{ "_id" : "CL1KKW", "total" : 30 }
5Giai đoạn đầu tiên: Giai đoạn db.keyword.aggregate([
{
$group: {
_id: "$llcId",
total: {$sum: 1},
}
},
{
$project: {
categoryId: 1, total: 1
}
}
])
35 lọc các tài liệu chỉ chuyển các tài liệu từ năm 2014 sang giai đoạn tiếp theo. Giai đoạn thứ hai: Giai đoạn { $group: { _id: , // Group key : { : }, ... } }
1 nhóm các tài liệu theo ngày và tính tổng số lượng bán, số lượng trung bình và tổng số tài liệu trong các tài liệu trong Mỗi nhóm. Giai đoạn thứ hai: Giai đoạn db.keyword.aggregate([
{
$group: {
_id: "$llcId",
total: {$sum: 1},
}
},
{
$project: {
categoryId: 1, total: 1
}
}
])
41 sắp xếp kết quả theo tổng số tiền bán cho mỗi nhóm theo thứ tự giảm dần.Hoạt động trả về các kết quả sau:
Hoạt động tổng hợp sau đây chỉ định một nhóm { $group: { _id: , // Group key : { : }, ... } }8 của db.keyword.aggregate([
{
$group: {
_id: "$llcId",
total: {$sum: 1},
}
},
{
$project: {
categoryId: 1, total: 1
}
}
])
43, tính toán tổng số lượng bán, số lượng trung bình và số lượng của tất cả các tài liệu trong bộ sưu tập.
Các tài liệu của các nhóm hoạt động tổng hợp sau đây theo trường
db.keyword.aggregate([
{
$group: {
_id: "$llcId",
total: {$sum: 1},
}
},
{
$project: {
categoryId: 1, total: 1
}
}
])
31, tính toán tổng số tiền bán cho mỗi mặt hàng và chỉ trả lại các mặt hàng có tổng số tiền bán hàng lớn hơn hoặc bằng 100:{ "_id" : "CL1KJQ", "total" : 17 }
{ "_id" : "CL1KKW", "total" : 30 }
6Mẹo
Hoạt động tổng hợp sau đây sử dụng giai đoạn { $group: { _id: , // Group key : { : }, ... } }1 để truy xuất các giá trị mục riêng biệt từ bộ sưu tập db.keyword.aggregate([
{
$group: {
_id: "$llcId",
total: {$sum: 1},
}
},
{
$project: {
categoryId: 1, total: 1
}
}
])
26:
Các tài liệu của các nhóm hoạt động tổng hợp sau đây theo trường
db.keyword.aggregate([
{
$group: {
_id: "$llcId",
total: {$sum: 1},
}
},
{
$project: {
categoryId: 1, total: 1
}
}
])
31, tính toán tổng số tiền bán cho mỗi mặt hàng và chỉ trả lại các mặt hàng có tổng số tiền bán hàng lớn hơn hoặc bằng 100:{ $group: { _id: , // Group key : { : }, ... } }
1 operator in a common use case.