Non sono sicuro che si tratti di un bug in MongoDB 2.6, ma puoi dare un'occhiata a questo articolo sulla creazione dell'indice.
Quindi, seguendo questo consiglio, puoi provare con questi indici:
$col->ensureIndex(array('owner' => 1, 'ca' => -1));
$col->ensureIndex(array('ca' => -1, 'owner' => 1, 'perm.type' => 1));
$col->ensureIndex(array('perm.list' => 1, 'ca' => -1, 'owner' => 1));
Modifica:
Dalla tua spiegazione, se stai testando su piccoli set di dati, la raccolta completa è veloce perché MongoDB non ha bisogno di esaminare molti documenti. Dovresti provare a fare un test con, ad esempio, 10000 documenti per vedere una vera differenza. I valori per i tuoi campi negli indici dovrebbero essere sufficientemente diversi da garantire la selettività dell'indice per le tue query (ad es. non tutti i documenti provengono dallo stesso proprietario).