Cảm ơn vì lời cảm ơn về Dex!
Nếu chưa quá muộn ở đây vào năm 2013, chỉ mục tôi khuyên dùng để tránh scanAndOrder ở đây là {_id:-1, cl:1, user_id:1}.
Lý do là vì $ lt trên _id và $ trong user_id tạo thành phạm vi trên nhiều "nhóm" chỉ mục. Một chỉ mục của bất kỳ thứ tự nào khác với thứ tự trên có nghĩa là các nhóm đó vẫn phải được sắp xếp cùng nhau để thỏa mãn một loại trên _id. Bằng cách đặt _id trước, tất cả các tài liệu được truy cập trong chỉ mục sẽ được sắp xếp đúng thứ tự trước.
Lưu ý rằng đây là một cải tiến nhỏ so với đề xuất của Andre ({_id:-1, user_id:1, cl:1}, cũng nên tránh scanAndOrder) vì nó cho phép kiểm tra tính tương đương trực tiếp trên cl để lược bớt kết quả.
Xem http://blog.mongolab.com/2012/06/cardinal- in / để biết thêm chi tiết.