Bạn nên chạy explain
dựa trên truy vấn của bạn, nó sẽ giúp bạn tìm ra điều gì đang xảy ra.
Có khả năng là Mongo không sử dụng chỉ mục cho cả lọc và sắp xếp. Khi bạn sử dụng $or
, nó có thể sử dụng nhiều chỉ mục để phù hợp với các tùy chọn. Nhưng khi bạn thêm sort
nó có thể làm cho nó không sử dụng các chỉ mục có sẵn để lọc.
Khi bạn muốn sắp xếp trên một truy vấn, bạn cần đảm bảo rằng trường được sắp xếp nằm trong chỉ mục bạn muốn đánh vào (cuối cùng hoặc không thể sử dụng nó để sắp xếp).
Bạn cũng có thể tăng tốc nó bằng cách chuyển một gợi ý chỉ mục. Tôi không biết có bao nhiêu tài liệu mà truy vấn của bạn phù hợp, nhưng nếu đó là một số nhỏ và bạn chắc chắn rằng các điều kiện ban đầu đang chạm vào một chỉ mục, hãy sắp xếp trên _id
có thể được thực hiện nhanh chóng.