Pochybuji, že existuje něco, co může zaručit integrita dat kromě zmíněného 2fázového commitu. Alespoň do oznámení verze 4 .
Existuje jen málo věcí, které minimalizují šance na nesprávné počty. Spojte vkládání a aktualizaci do jediného hromadné . Sníží to pravděpodobnost, že jedna z operací selže na straně aplikace, protože se jedná o jediný požadavek.
Poté zkontrolujte, zda nInserted === 1 a nModified === 1 . V opačném případě zkuste znovu nebo zařaďte do fronty úlohu přepočtu pro dané ID příspěvku.
Pro opakované pokusy je nezbytné mít opakovatelné zápisy povoleno, protože budete používat $inc na postech, což má k idempotentnímu provozu dost daleko.
Další možností je použít bez transakce přístup - jakási kombinace "Spouštět skript pokaždé, aby se aktualizoval počet komentářů" a "Vůbec neukládat číslo komentářů". Budete si muset ponechat časová razítka poslední úlohy přepočtu a počítat nové komentáře od data.