Това се случва, защото въпреки че
db.repo.remove({"date" : {"$lt" : new Date(1362096000000)}})
изглежда като една единствена команда, тя всъщност работи с много документи - толкова, колкото отговарят на тази заявка.
Когато използвате репликация, всяка операция за промяна трябва да бъде записана в специална колекция в local
база данни, наречена oplog.rs
- oplog за кратко.
Oplog трябва да има запис за всеки изтрит документ и всеки един от тези записи трябва да бъде приложен към oplog на всеки вторичен файл, преди да може да изтрие същия запис.
Едно нещо, което мога да предложа да обмислите, е TTL индекси - те "автоматично" ще изтриват документи въз основа на датата на изтичане/стойността, които сте задали - по този начин няма да имате едно масивно изтриване и вместо това ще можете да разпределите натоварването повече във времето.