📌  相关文章
📜  如何使用 Node.js 删除 MongoDb 中存在的所有数据库?(1)

📅  最后修改于: 2023-12-03 14:52:00.378000             🧑  作者: Mango

如何使用 Node.js 删除 MongoDb 中存在的所有数据库?

如果你想在使用Node.js时,删除Mongo数据库中已经存在的所有数据库,那么可以按照以下步骤:

首先,使用Node.js Mongoose库,它是一个优秀的MongoDB对象模型工具。确保你已经安装Mongoose。你可以使用以下代码来进行安装:

npm install mongoose

安装完成后,你可以连接到MongoDB数据库。使用以下代码,建立连接:

const mongoose = require('mongoose');

mongoose.connect('mongodb://localhost:27017/my-database', { useNewUrlParser: true })
  .then(() => console.log('MongoDB connected...'))
  .catch(err => console.log(err));

接下来,使用以下代码,可以查询所有数据库,并删除:

mongoose.connection.db.listDatabases()
  .then((dbsInfo) => {
    dbsInfo.databases.forEach((db) => {
      if (db.name !== 'admin' && db.name !== 'local')
        mongoose.connection.db.dropDatabase(db.name, (err) => {
          if (err) {
            console.log(`Error dropping database ${db.name}: ${err}`);
          } else {
            console.log(`Database ${db.name} successfully removed`);
          }
        });
    });
  })
  .catch(error => console.log(`Error listing databases: ${error}`));

以上代码通过查询所有数据库列表,然后删除除了'mongo admin' 和 'mongo local' 以外的 所有数据库。

完整代码框架:

const mongoose = require('mongoose');

mongoose.connect('mongodb://localhost:27017/my-database', { useNewUrlParser: true })
  .then(() => console.log('MongoDB connected...'))
  .catch(err => console.log(err));

mongoose.connection.db.listDatabases()
  .then((dbsInfo) => {
    dbsInfo.databases.forEach((db) => {
      if (db.name !== 'admin' && db.name !== 'local')
        mongoose.connection.db.dropDatabase(db.name, (err) => {
          if (err) {
            console.log(`Error dropping database ${db.name}: ${err}`);
          } else {
            console.log(`Database ${db.name} successfully removed`);
          }
        });
    });
  })
  .catch(error => console.log(`Error listing databases: ${error}`))

以上代码会成功删除除'admin'和 'local'以外的所有数据库,并打印成功的消息。

这就是如何使用Node.js删除MongoDB中所有存在的数据库。