Dzięki za okrzyki na Dex!
Jeśli nie jest za późno w 2013, indeks, który zalecam, aby uniknąć scanAndOrder to { _id:-1, cl:1, user_id:1 }.
Powodem jest to, że $lt w _id i $in w user_id stanowią zakresy w wielu „zasobach” indeksów. Indeks dowolnej innej kolejności niż powyższe oznacza, że te zasobniki muszą być nadal posortowane razem, aby spełnić sortowanie według _id. Umieszczając _id na pierwszym miejscu, wszystkie dokumenty odwiedzane w indeksie zostaną odpowiednio uporządkowane z wyprzedzeniem.
Zauważ, że jest to niewielka poprawa w stosunku do sugestii Andre ({ _id:-1, user_id:1, cl:1 }, co powinno również unikać scanAndOrder), ponieważ umożliwia proste sprawdzenie równoważności w cl w celu przycięcia wyników.
Sprawdź http://blog.mongolab.com/2012/06/cardinal- ins/ po więcej szczegółów.