Som du har opdaget, understøttes sekundære indekser ikke på systemsamlinger såsom local.oplog.rs
og *.system.profile
. I MongoDB 2.4 og ældre ser det ud til, at indekserne er blevet oprettet, men de blev aldrig faktisk opdateret. Nyere versioner af MongoDB (2.6+) returnerer en fejl, hvis du forsøger at opdatere en systemsamling direkte med en ikke-understøttet ændring, såsom at forsøge at oprette yderligere indekser.
oplog.rs
samling er bestemt "særlig", fordi dens tilsigtede brug kun er til replikering. Replikeringsinterne gør nogle antagelser om forventede operationer for oploggen på dette grundlag. For eksempel behøver replikering kun at indsætte oplog-poster -- i modsætning til en begrænset samling, som du kan oprette selv, er oplog-poster aldrig opdateret.
Programmer forventes at læse oploggen med en tailable cursor, hvis de skal følge nye poster, der er indsat i oploggen, eller for at finde ved hjælp af $natural
bestille.
Den tailable cursor tutorial går i nogle flere detaljer om brug, men et par særlige punkter at bemærke er:
- Tailable cursorer bruger ikke indekser og returnerer dokumenter i naturlig rækkefølge.
- Fordi tailable cursorer ikke bruger indekser, kan den indledende scanning for forespørgslen være dyr; men efter først at have brugt markøren, er efterfølgende hentning af de nyligt tilføjede dokumenter billige