Děkujeme za upozornění na Dex!
Pokud zde v roce 2013 není příliš pozdě, index, který doporučuji, abyste se vyhnuli scanAndOrder zde, je { _id:-1, cl:1, user_id:1 }.
Důvodem je to, že $lt na _id a $in na user_id tvoří rozsahy napříč více indexovými "buckety". Index jakéhokoli jiného než výše uvedeného pořadí znamená, že tyto segmenty musí být stále setříděny dohromady, aby vyhovovaly řazení podle _id. Zadáním _id na první místo budou všechny navštívené dokumenty v indexu předem správně seřazeny.
Všimněte si, že jde o mírné zlepšení oproti Andreovu návrhu ({ _id:-1, user_id:1, cl:1 }, což by se také mělo vyhnout scanAndOrder), protože umožňuje přímou kontrolu ekvivalence na cl pro ořezání výsledků.
Podívejte se na http://blog.mongolab.com/2012/06/cardinal- ins/ pro více podrobností.