我有一个巨大的 mongodb 数据库列表,我想使用 mongo shell 命令删除所有以字符串“2019”开头的数据库
我找到了列出它们的命令
db.adminCommand( { listDatabases: 1, filter: { "name": /^2019/ } } )
我只想删除该命令的输出。
将其粘贴到
mongosh
中会删除名称以 YOUR-PREFIX-HERE: 开头的每个数据库
(() => {
db.adminCommand(
{
listDatabases: 1,
filter: { "name": /^YOUR-PREFIX-HERE/ }
}
)
.databases.map(({ name }) => name)
.forEach(name => {
const db2 = db.getSiblingDB(name);
db2.dropDatabase();
});
})();
关键是使用
db.getSiblingDB
来获取每个数据库的引用。 dropDatabase()
没有名称,您必须在引用正确数据库的数据库对象上调用它。