我是MongoDB和node.js的新手,我想知道如何删除数据库。
我进行了搜索,发现它是通过dropDatabase()
方法完成的。问题在于它显示了MongoError: user is not allowed to do action [dropDatabase] on [test.]
。我还搜索了此错误,发现的答案是该用户需要注册为Data Access Read Write
。但是,我在mongo地图集上的用户注册为Project Owner
,并按照回答说。我删除了Project Owner
,它仍然显示错误。
MongoClient.connect(uri, { useNewUrlParser: true }, (err, client)=>{
if(err) throw err;
console.log("Connected...");
const db = client.db("test");
db.dropDatabase();
console.log("asdfghj")
client.close();
});
实际上,每当我搜索解决搜索栏中键入Mongo atlas
的问题时,即使我键入How to delete cluster in mongo atlas
,结果也像delete database in mongo atlas
一样。所以我不知道是否可以在mongo地图集中删除数据库。
预先谢谢你。
答案 0 :(得分:0)
您可以登录Atlas,单击集群名称,单击“集合”选项卡,然后将鼠标悬停在左侧的数据库名称上,将出现一个垃圾箱图标,该图标将删除数据库(假设您的用户有适当的权限)
如果要删除代码中的数据库,则无法直接从mongoose中删除它,但是如果您访问基础的mongodb驱动程序,则可以:
Route
答案 1 :(得分:0)
您好像将“ Atlas项目”的安全性与“数据库访问”混淆了。
如果要从Atlas群集中删除数据库,则用于登录Mongo Client的“数据库用户”需要在相关数据库中具有“ dbAdmin”角色。然后,您可以通过数据库用户通过Mongo客户端以编程方式执行相关操作。
您可以参考https://docs.atlas.mongodb.com/security-add-mongodb-users/来管理数据库用户和安全角色。