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

Dotaz na spouštěče odstranění MongoDB

Tento dokument musíte načíst podle jeho ObjectID, což nebude možné na aktuálním uzlu, který sledujete oplog od protože v době, kdy jste obdrželi operaci odstranění z oplog , dokument je pryč. Což podle mě znamená, že máte dvě možnosti:

  1. Ujistěte se, že všem smazáním předchází operace aktualizace, která vám umožní zobrazit pole dokumentu, která před smazáním požadujete (samozřejmě tím bude smazání dražší)
  2. Spusťte sekundární se zpožděním slave a poté se v tomto uzlu dotazujte na dokument, který byl odstraněn (buď přímo, nebo pomocí značky ).

U čísla 2 je problém se zpožděním, které je dostatečně dlouhé, aby zaručilo, že dokument můžete načíst, a dostatečně krátké, abyste se ujistili, že získáváte aktuální verzi dokumentu. Pokud do dokumentu nepřidáte verzování jako kontrolu (která se pak podobá možnosti 1, pravděpodobně budete chtít verzi před smazáním aktualizovat), muselo by to být v podstatě optimistické a nejlepší řešení.




  1. MongoDB C# Driver Serializace s dynamickými objekty

  2. 3 způsoby, jak vytvořit index v MongoDB

  3. Jak mohu spustit redis na jednom serveru na různých portech?

  4. Spring Data MongoDB:agregační rámec – řazení s vnořenou vlastností vyvolá neplatný odkaz