删除 Mongo shell 上以特定字符串开头的所有数据库

问题描述 投票:0回答:1

我有一个巨大的 mongodb 数据库列表,我想使用 mongo shell 命令删除所有以字符串“2019”开头的数据库

我找到了列出它们的命令

db.adminCommand( { listDatabases: 1, filter: { "name": /^2019/ } } )

我只想删除该命令的输出。

mongodb shell mongo-shell
1个回答
0
投票

将其粘贴到

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()
没有名称,您必须在引用正确数据库的数据库对象上调用它。

© www.soinside.com 2019 - 2024. All rights reserved.