He reestructurado un poco mi base de datos y ya no necesito colecciones. Sin embargo, hay demasiados para eliminarlos a mano (miles, en realidad). Cada una de las colecciones en cuestión comienza con "cache_" y contiene un par de índices que me gustaría asegurar que estén completamente limpios.MongoDB: Eliminar todas las colecciones cuyo nombre coincida con una cadena
Estoy tratando de entender cómo usar el shell mongo para recorrer todos los nombres de colección y eliminar aquellas colecciones que comienzan con "cache_". Por el Queries & Cursors documentation, entiendo cómo recorrer los documentos dentro de una colección, pero no cómo usar el shell MongoDB para recorrer las colecciones en la base de datos.
En pseudo-código, esto es lo que necesito:
var all_collections = show collections
for(var collection in all_collections)
if(collection.name.indexOf('cache_')==0)
collection.drop()
Fwiw, he hecho la búsqueda de "bucle mongodb través de nombres de colección", etc., y no he encontrado nada, pero tal vez sux at teh googlez = P
En una nota relacionada ... después de hacer este grado de reestructuración, ¿debería estar haciendo un db.repairDatabase()
o algo por el estilo para asegurarme de que los índices caídos, etc., estén todos bien y limpios?
Gracias.
FTW, gracias. Supongo que no sabía que "mostrar colecciones" => "db.getCollectionNames();" –
** db [collectionName] ** es la clave aquí. _Javascript para ejecutar en RoboMongo_ 'colecciones var = [ 'collection1', 'collection2'] collections.forEach (function (coll_name) { de impresión (coll_name) db [coll_name] .drop() })' – Abhijeet