Как удалить базы данных MongoDB, соответствующие определенному условию?

database #mongodb

#База данных #mongodb

Вопрос:

У меня много баз данных, я могу удалять их одну за другой. Но баз данных слишком много, как я могу удалить их сразу.

Например, удалите все базы данных, которые имеют имя recommend .

Ответ №1:

Вы можете использовать db.adminCommand

 db.adminCommand("listDatabases").databases.forEach( function (d) {
    if (d.name == "recommend")
        db.getSiblingDB(d.name).dropDatabase();
 })
 

С помощью этого вы можете добавить несколько условных обозначений для конкретной базы данных.

Вот список доступных команд: https://docs.mongodb.com/manual/reference/command/nav-administration /

Здесь больше документации об этом: https://docs.mongodb.com/manual/reference/method/db.adminCommand /

Ответ №2:

listDatabases Команда возвращает все базы данных, вы можете повторить этот список, чтобы удалить те, которые соответствуют критериям.

В оболочке mongo это может выглядеть так:

 db.adminCommand("listDatabases").databases.
    filter(d => d.name.match(/recommend/)).
    map(d => db.getSiblingDB(d.name).dropDatabase())