Trong collection transactions, mỗi document là một bucket giao dịch của một tài khoản (account_id); các giao dịch nằm trong mảng transactions, mỗi phần tử có trường amount.
Tìm 10 giao dịch lớn nhất: dùng $unwind tách mảng transactions thành từng giao dịch, sắp xếp theo transactions.amount giảm dần (nếu bằng nhau thì theo account_id tăng dần), lấy 10 bản ghi. Chỉ in account_id và amount (lấy từ transactions.amount, đặt tên trường là amount), không in _id. Pipeline: unwind+sort + limit+project.
Chương trình chỉ in kết quả của một câu lệnh aggregate.
Collection transactions (dữ liệu mẫu sample_analytics.transactions) đã được nạp sẵn vào database hiện tại. Không cần lệnh use.
Kết quả aggregate theo định dạng mongosh: mảng 10 document dạng { account_id: ..., amount: ... }, theo thứ tự amount giảm dần rồi account_id tăng dần.
Ví dụ:
Đầu vào:
sample_analytics.transactions
Đầu ra:
[
{ account_id: 90117, amount: 9999 },
{ account_id: 107787, amount: 9999 },
{ account_id: 133274, amount: 9999 },
{ account_id: 139582, amount: 9999 },
{ account_id: 177869, amount: 9999 },
{ account_id: 317449, amount: 9999 },
{ account_id: 394038, amount: 9999 },
{ account_id: 412013, amount: 9999 },
{ account_id: 588722, amount: 9999 },
{ account_id: 652071, amount: 9999 }
]Đang tải editor...