Создайте пользователя только в том случае, если он не существует в MongoDB (простой пример)

#mongodb #createuser

#mongodb #создать пользователя

Вопрос:

Я новичок в и . MongoDB .js

У меня есть простой add_app_user.js скрипт со следующим содержанием:

 # MongoDB shell version v4.2.17 # Set the database to 'testdb'. db = db.getSiblingDB('testdb');  # Create new user. db.createUser(  {  user: "testuser",  pwd: "testpass",  roles: [ "readWrite" ]  } );  

Это прекрасно работает в первый раз (когда такого пользователя не существует).

Мне нужно сделать его идемпотентным.

Я не смог найти простой для понимания скрипт, который будет проверять "testuser" доступность в блоке "testdb" и запускать мой скрипт только в том случае, если проверка завершится неудачно.

Ответ №1:

Попробуйте это:

 if (db.getUser("testuser") == null) {   db.createUser(  {  user: "testuser",  pwd: "testpass",  roles: [ "readWrite" ]  }  ); }  

NB, обычно пользователи создаются в admin базе данных. На самом деле я не знаю никакой причины, по которой они должны быть созданы в другом месте.