Jak jste zjistili, sekundární indexy nejsou podporovány v systémových kolekcích, jako je local.oplog.rs
a *.system.profile
. V MongoDB 2.4 a starších by se zdálo, že indexy byly vytvořeny, ale ve skutečnosti nebyly nikdy aktualizovány. Novější verze MongoDB (2.6+) vrátí chybu, pokud se pokusíte přímo aktualizovat systémovou kolekci nepodporovanou změnou, jako je například pokus o vytvoření dalších indexů.
oplog.rs
kolekce je rozhodně "speciální", protože její zamýšlené použití je pouze pro replikaci. Interní replikace na tomto základě vytváří určité předpoklady o očekávaných operacích pro oplog. Například replikace potřebuje pouze vložit položky oplog – na rozdíl od omezené kolekce, kterou můžete vytvořit sami, položky oplog nejsou nikdy aktualizováno.
Očekává se, že aplikace budou číst oplog s tabulkovým kurzorem, pokud potřebují sledovat nové položky vložené do oplogu nebo vyhledávat pomocí $natural
objednávka.
Výukový program s přehledným kurzorem jde do některých podrobností o použití, ale je třeba poznamenat několik konkrétních bodů:
- Tailable kurzory nepoužívají indexy a vracejí dokumenty v přirozeném pořadí.
- Protože upravitelné kurzory nepoužívají indexy, může být počáteční skenování dotazu nákladné; ale po počátečním vyčerpání kurzoru je následné načítání nově přidaných dokumentů levné