Dzieje się tak, ponieważ chociaż
db.repo.remove({"date" : {"$lt" : new Date(1362096000000)}})
wygląda jak pojedyncze polecenie, które faktycznie działa na wielu dokumentach - tyle, ile spełnia to zapytanie.
Kiedy używasz replikacji, każda operacja zmiany musi być zapisana w specjalnej kolekcji w local
baza danych o nazwie oplog.rs
- oplog w skrócie.
Oplog musi mieć wpis dla każdego usuniętego dokumentu, a każdy z tych wpisów musi zostać zastosowany do oploga na każdym wtórnym, zanim będzie mógł usunąć ten sam rekord.
Jedną rzeczą, którą mogę zasugerować, jest indeksy TTL - "automatycznie" usuną dokumenty na podstawie ustawionej daty/wartości wygaśnięcia - w ten sposób nie będziesz mieć jednego masowego usunięcia, a zamiast tego będziesz mógł rozłożyć obciążenie w czasie.