Thống kê tổng tiền giao dịch theo tài khoản trong collection transactions.
Lưu ý cấu trúc dữ liệu: mỗi document là một "bucket" của một tài khoản, gồm account_id và mảng transactions; mỗi phần tử của mảng này là một giao dịch (có các trường date, amount, transaction_code, symbol, price, total). Trường amount nằm bên trong từng phần tử mảng, không nằm ở cấp document — gợi ý: dùng $unwind.
Yêu cầu:
• Gom nhóm theo account_id (giá trị nhóm nằm ở _id)
• Tính tổng amount của tất cả giao dịch thuộc mỗi tài khoản, đặt tên trường kết quả là totalAmount
• Sắp xếp theo totalAmount giảm dần; nếu bằng nhau thì theo _id tăng dần
• Lấy 10 tài khoản cao nhất
Không cần lệnh use. Chương trình chỉ được in kết quả của một câu aggregate.
Collection transactions (dữ liệu mẫu sample_analytics.transactions) đã được nạp sẵn.
Kết quả của câu aggregate theo định dạng mongosh: một mảng 10 document dạng { _id: <account_id>, totalAmount: <tổng amount> }. Ví dụ phần đầu:
[
{ _id: 402535, totalAmount: 560036 },
...
]
Ví dụ:
Đầu vào:
sample_analytics.transactions
Đầu ra:
[
{ _id: 402535, totalAmount: 560036 },
{ _id: 329562, totalAmount: 544606 },
{ _id: 740604, totalAmount: 543136 },
{ _id: 147085, totalAmount: 535893 },
{ _id: 678107, totalAmount: 535755 },
{ _id: 918539, totalAmount: 535710 },
{ _id: 492843, totalAmount: 534405 },
{ _id: 719393, totalAmount: 533476 },
{ _id: 972116, totalAmount: 533410 },
{ _id: 831097, totalAmount: 532752 }
]Đang tải editor...