Detta händer eftersom även om
db.repo.remove({"date" : {"$lt" : new Date(1362096000000)}})
ser ut som ett enda kommando, det fungerar faktiskt på många dokument - så många som uppfyller denna fråga.
När du använder replikering måste varje ändringsoperation skrivas till en speciell samling i local
databas som heter oplog.rs
- oplog för kort.
Oploggen måste ha en post för varje raderat dokument och var och en av dessa poster måste tillämpas på oploggen på varje sekundär innan den också kan radera samma post.
En sak jag kan föreslå att du överväger är TTL-index - de kommer "automatiskt" att ta bort dokument baserat på utgångsdatum/värde som du ställt in - på så sätt kommer du inte att ha en stor radering och istället kommer du att kunna sprida belastningen mer över tiden.