To se děje, protože i když
db.repo.remove({"date" : {"$lt" : new Date(1362096000000)}})
vypadá jako jeden příkaz, který ve skutečnosti pracuje s mnoha dokumenty – tolik, kolik vyhovuje tomuto dotazu.
Když používáte replikaci, každá operace změny musí být zapsána do speciální kolekce v local
databáze s názvem oplog.rs
- zkráceně oplog.
Oplog musí mít záznam pro každý smazaný dokument a každý z těchto záznamů musí být aplikován na oplog na každém sekundárním, než může také odstranit stejný záznam.
Jedna věc, kterou mohu doporučit, abyste zvážili, je indexy TTL - budou "automaticky" mazat dokumenty na základě data vypršení platnosti/hodnoty, kterou nastavíte - tímto způsobem nebudete mít jedno masivní smazání a místo toho budete moci více rozložit zatížení v průběhu času.