MongoDB: Entfernen aller Sammlungen, deren Name mit einer Zeichenfolge übereinstimmt

10

Ich habe meine Datenbank ein wenig umstrukturiert und brauche bestimmte Sammlungen nicht mehr. Es gibt jedoch viel zu viele von ihnen, um sie von Hand zu entfernen (Tausende tatsächlich). Jede der betreffenden Sammlungen beginnt mit "cache_" und enthält ein paar Indizes, die ich sicherstellen möchte, dass sie vollständig bereinigt sind.

Ich versuche zu verstehen, wie man die Mongo-Shell verwendet, um alle Sammlungsnamen zu durchlaufen und diejenigen Sammlungen zu entfernen, die mit "cache_" beginnen. Pro Anfragen & amp; Cursor-Dokumentation , ich verstehe, wie man Dokumente innerhalb einer Sammlung durchläuft, aber nicht wie man die MongoDB-Shell benutzt, um die Sammlungen in der Datenbank zu durchlaufen.

In Pseudo-Code ist das, was ich brauche:

%Vor%

FWIW, ich habe nach "mongodb loop durch Sammlungsnamen" gesucht usw. und habe noch nichts gefunden, aber vielleicht suppige ich bei googlez = P

Zu einer verwandten Notiz ... sollte ich nach diesem Grad der Umstrukturierung ein db.repairDatabase() oder irgendetwas der Sorte machen, um sicherzustellen, dass die fallengelassenen Indizes usw. alle schön und sauber sind?

Danke.

    
Zane Claes 11.10.2012, 16:45
quelle

3 Antworten

22

Verwenden Sie db.getCollectionNames() , um alle Sammlungen abzurufen und in einem Array zu speichern .

%Vor%     
ggreiner 11.10.2012, 16:52
quelle
1

Nur um eine weitere Antwort hinzuzufügen auf der Mongodb-Mailingliste

%Vor%

Wahrscheinlich möchten Sie die lokalen / config / admin dbs nicht löschen, wie ich oben aufgeführt habe.

    
Nishant 15.02.2013 09:22
quelle
0

Das Folgende hat mir sehr geholfen, die Sammlungen zu entfernen, die durch Map Reduce-Jobs erstellt wurden. In meinem Fall wurden sie bei der lokalen Einrichtung automatisch gelöscht, aber aus irgendeinem Grund blieben sie auf dem Server hängen.

%Vor%

Dies ist ähnlich wie Nishants Antwort, aber der Unterschied ist, dass ich keine Administratorrechte habe und db.adminCommand (gehostete Mongo-Instanz) nicht aufrufen kann.

    
chris mathias 06.09.2013 21:27
quelle

Tags und Links