Các lượt nộp
    Danh sách bài
    Trang chủ
    Báo lỗi
    solution
    Đăng nhập
    Đăng nhập

    Đề bài: 10 giao dịch lớn nhất

    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+unwind + unwind+sort + limit+limit + limit+project.

    Chương trình chỉ in kết quả của một câu lệnh aggregate.

    • Định dạng đầu vào:

      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.

    • Định dạng đầu ra:

      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 }
    ]

    Chủ đề

    🗄️ Cơ sở dữ liệuMongodbAggregationTất cả môn học

    Đang tải editor...