Как удалить базу данных с помощью node.js и MongoDB Atlas?

Я новичок в 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. Поэтому я не знаю, можно ли удалить базу данных в атласе монго. Заранее спасибо.


person Eye Patch    schedule 11.04.2019    source источник


Ответы (2)


Похоже, вы путаете безопасность проекта Atlas с доступом к базе данных.

Если вы хотите удалить базу данных из кластера Atlas, пользователь базы данных, которого вы используете для входа в свой клиент Mongo, должен иметь роль dbAdmin в соответствующей базе данных. Затем вы можете выполнять соответствующие операции, используя пользователя вашей базы данных через ваш клиент Mongo программно.

Вы можете обратиться к https://docs.atlas.mongodb.com/security-add-mongodb-users/ для управления пользователями базы данных и ролями безопасности.

person Mert Z.    schedule 07.07.2020

Вы можете войти в Atlas, щелкнуть имя кластера, щелкнуть вкладку «коллекции», затем, когда вы наведете курсор на имя базы данных слева, появится значок мусорной корзины, который удалит БД (при условии, что у вашего пользователя есть соответствующие разрешения )

Если вы хотите удалить базу данных в коде, это невозможно сделать напрямую из мангуста, но вы можете это сделать, если получите доступ к базовому драйверу mongodb:

mongoose.connection.db.dropDatabase(cb)

person djheru    schedule 11.04.2019
comment
Да, но разве нет способа удалить его с помощью кода? - person Eye Patch; 11.04.2019
comment
Вы можете управлять своими базами данных и коллекциями через пользовательский интерфейс Atlas, но это не тот подход, который вы бы использовали для программного управления своими базами данных. - person Mert Z.; 07.07.2020