Bạn không thể tạo chỉ mục hoạt động theo cách bạn đã mô tả. Không có cách nào để "lập chỉ mục" một trong các kết quả đầu ra của bước đường ống khi chạy tổng hợp.
Có một số toán tử tổng hợp có thể làm việc với Chỉ mục bộ sưu tập MongoDB .
Hiện tại, chúng bao gồm:$match
, $sort
, $limit
và $skip
.
Dưới dạng $match
là một trong số đó, hiệu suất của truy vấn tổng hợp mà bạn đã viết có thể có lợi bằng cách khai báo chỉ mục kết hợp trên hai trường, đặc biệt là khi bạn đã đặt đúng $match
ở đầu quy trình:
db.theCollection.ensureIndex({user: 1, type: 1})
$group
bước trong quy trình sẽ lấy kết quả từ $match
và lý tưởng là phải tương đối nhanh chóng. :)