Aby zmienić plan zapytania, należałoby dodać filtr, który może używać tego indeksu w ten sposób - nie wszystkie operacje usuwają etap FETCH, np. $exists nie działa:
db.coll.find({ _id: { $ne: 0 }, { _id: 1 }) // works for ObjectIds
Jedną z części wyjaśnienia tego jest dokumentacja :
Wydaje mi się, że widziałem prośbę JIRA o wsparcie tego bez filtra, ale nie pamiętam, który bilet był...