sql >> Databáze >  >> NoSQL >> MongoDB

Index v poli ts v oplog.rs není aktualizován

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é


  1. MongoDB $exp

  2. jak stáhnout soubor uložený v gridFS pomocí nodeJS

  3. Řešení pomalých dotazů v MongoDB

  4. Používáte generátory aktivních záznamů po instalaci Mongoidu?