sql >> Database >  >> NoSQL >> MongoDB

Snelste manier om 100 miljoen documenten op ID te verwijderen

Omdat we ons geen uitvaltijd van gebruikers kunnen veroorloven en de oplossing dagelijks moet worden uitgevoerd (zij het op een veel kleinere schaal, omdat we deze eerste run inhalen), kon ik de oplossing van Salvador Dali niet gebruiken. Uiteindelijk heb ik mijn te verwijderen records gegroepeerd in groepen van 1k en een BulkWrite-opdracht verzonden met een delete() bewerking voor elk record. Tegelijkertijd heb ik n BulkWrite-commando's verzonden om verwijzingen naar elk record teniet te doen, waarbij n het aantal verzamelingen is dat naar de records verwijst en waarbij elk BulkWrite-verzoek 1k individuele update() heeft. bewerkingen, vergelijkbaar met de delete() . Dit werkte redelijk snel, dus ik heb niet geprobeerd om verder te optimaliseren door het aantal bewerkingen in de BulkWrite-commando's aan te passen.



  1. MONGO krijgt alleen de naam van documenten, maar niet de hele documenten

  2. Sidekiq verwerkt wachtrij niet

  3. Gebruik van $unwind en $text in aggregatieframework mongodb

  4. Hoe $in operator te gebruiken in mongodb met twee velden in java