Saya tidak yakin apakah ini bug di MongoDB 2.6 tetapi Anda dapat melihat artikel ini tentang pembuatan indeks.
Jadi mengikuti saran itu, Anda dapat mencoba dengan indeks ini:
$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));
Sunting:
Dari penjelasan Anda, jika Anda menguji pada kumpulan data kecil, pengumpulan lengkap cepat karena MongoDB tidak perlu melalui banyak dokumen. Anda harus mencoba melakukan tes dengan misalnya 10.000 dokumen untuk melihat perbedaan yang nyata. Nilai untuk bidang Anda dalam indeks harus cukup berbeda untuk memastikan selektivitas indeks untuk kueri Anda (mis. tidak semua dokumen berasal dari pemilik yang sama).