Javascript 如何使用Node.js mongodb官方提供程序重新创建mongo数据库?
我有一个简单的例子——如果数据库存在,我想删除它,然后我想创建一个新的数据库。我用 现在,我尝试使用以下代码来完成此操作:Javascript 如何使用Node.js mongodb官方提供程序重新创建mongo数据库?,javascript,node.js,database,mongodb,Javascript,Node.js,Database,Mongodb,我有一个简单的例子——如果数据库存在,我想删除它,然后我想创建一个新的数据库。我用 现在,我尝试使用以下代码来完成此操作: const client = new MongoClient(dbUrl, { useNewUrlParser: true }); client.connect(() => { const db = client.db(); db.dropDatabase(); createUsers(db); client.close();
const client = new MongoClient(dbUrl, { useNewUrlParser: true });
client.connect(() => {
const db = client.db();
db.dropDatabase();
createUsers(db);
client.close();
console.log(`Database "${db.databaseName}" created successfully`);
}, (error) => {
if (error) throw error;
});
但我得到了一个错误:拓扑从mongodb中被破坏。但是没有方法在删除后创建数据库。如何正确地重新创建数据库?删除client.close
看看我的代码
const{MongoClient}=require'mongodb';
MongoClient.connect'mongodb://localhost:27017“,{useNewUrlParser:true}。thenclient=>{
console.log“已连接到MongoDB服务器”
const dbOld=client.db'db01'
//删除db01
dbOld.dropDatabase.then=>{
console.log`${dbOld.databaseName}成功删除`
//再次创建db01
const dbNew=client.db'db01'
console.log`${dbNew.databaseName}已成功重新创建`;
},e=>console.loge
}
祝你好运 基于@padeq答案的最终解决方案:
/**
* Rereates a database
* @param {String} dbUrl Database url
*/
const recreateTestDb = (dbUrl) => {
MongoClient.connect(dbUrl, { useNewUrlParser: true }).then((client) => {
const currentDb = client.db();
currentDb.dropDatabase().then(() => {
const newDb = client.db();
createUsers(newDb);
client.close().then(() => {
console.log(`New database "${newDb.databaseName}" recreated successfully`);
});
});
});
};