Dokonałem restrukturyzacji bazy danych i nie potrzebuję już niektórych kolekcji. Jednak jest ich zbyt wiele, by usunąć je ręcznie (w rzeczywistości tysiące). Każda z tych kolekcji zaczyna się od "cache_" i zawiera kilka indeksów, które chciałbym upewnić się, że są całkowicie wyczyszczone.MongoDB: Usuwanie wszystkich kolekcji, których nazwa pasuje do ciągu znaków
Próbuję zrozumieć, jak używać powłoki Mongo, aby zapętlić wszystkie nazwy kolekcji i usunąć te kolekcje, które zaczynają się od "cache_". Zgodnie z Queries & Cursors documentation, rozumiem, jak pętli nad dokumentami w kolekcji, ale nie sposób korzystać z powłoki MongoDB do przechodzenia przez kolekcje w bazie danych.
W pseudo-kodu, to jest to, czego potrzebuję:
var all_collections = show collections
for(var collection in all_collections)
if(collection.name.indexOf('cache_')==0)
collection.drop()
FWIW, zrobiłem poszukiwanie "pętli MongoDB opisów Collection" itd. I nie znalazłem niczego, ale może w sux teh googlez = P
Na pokrewnej notatce ... po wykonaniu tego stopnia restrukturyzacji, czy powinienem robić db.repairDatabase()
lub coś w tym rodzaju, aby upewnić się, że zrzucone indeksy itp. są ładne i czyste?
Dzięki. Aby uzyskać wszystkie kolekcje i zapisać je w tablicy, należy użyć
FTW, dzięki. Chyba nie wiedziałem, że "show collections" => "db.getCollectionNames();" –
** db [nazwa_kolekcji] ** jest tutaj kluczem. _Javascript wykonać na RoboMongo_ 'zbiory var = [ 'collection1', 'collection2'] collections.forEach (funkcja (coll_name) { druku (coll_name) dB [coll_name] .drop() })' – Abhijeet