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: Index cho aggregation có $match + $group

    Thực hiện các bước sau: • Viết aggregation pipeline gồm $match (lọc price > 300) và $group theo address.country (đếm số listing vào trường soLuong) • Chạy pipeline với explain("executionStats") khi chưa có index • Tạo index tăng dần cho price và in tên index • Chạy lại pipeline với explain("executionStats") và so sánh hiệu quả (số key/document phải duyệt)

    Lưu ý: kết quả explain đầy đủ chứa thông tin máy chủ và thời gian chạy (thay đổi mỗi lần chạy) nên không in toàn bộ. Code khởi tạo có sẵn hàm hỗ trợ cacStage(ketQuaExplain) trả về mảng tên các stage của winning plan (từ ngoài vào trong, ví dụ [ 'FETCH', 'IXSCAN' ]). Chỉ cần điền vào các chỗ TODO và giữ nguyên các lệnh print; chương trình không được in thêm gì khác. Không cần lệnh use.

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

      Collection listingsAndReviews (dữ liệu mẫu sample_airbnb.listingsAndReviews) đã được nạp sẵn.

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

      In đúng 9 dòng, theo thứ tự:

      • Dòng 1–4: kết quả explain trước khi có index: mảng stage, nReturned, totalKeysExamined, totalDocsExamined
      • Dòng 5: tên index vừa tạo (kết quả createIndex)
      • Dòng 6–9: kết quả explain sau khi có index: mảng stage, nReturned, totalKeysExamined, totalDocsExamined

      Ví dụ định dạng (không phải đáp án):

      [ 'GROUP', 'COLLSCAN' ]
      9
      0
      1000
      field_1
      [ 'GROUP', 'FETCH', 'IXSCAN' ]
      9
      200
      200
      

    Ví dụ:

    Đầu vào:

    sample_airbnb.listingsAndReviews

    Đầu ra:

    [ 'GROUP', 'COLLSCAN' ]
    9
    0
    5555
    price_1
    [ 'GROUP', 'FETCH', 'IXSCAN' ]
    9
    1225
    1225

    Chủ đề

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

    Đang tải editor...