📅  最后修改于: 2023-12-03 14:52:00.378000             🧑  作者: Mango
如果你想在使用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中所有存在的数据库。