2012-05-24 4 views
5

Я в процессе настройки mongodb, и мы используем марионетку для управления конфигурацией наших серверов.Как я могу использовать скрипт для создания пользователей в mongodb?

У меня есть большинство настроек, которые мне нужны, но мне нужно создать пользователя в базе данных монго.

Я знаю, как это сделать с помощью Монго оболочки, и я знаю, что я могу сделать это с помощью JavaScript/а .js с помощью команды

db.addUser("username", "password"[, readOnly]) 

Однако, я не смог найти твердый пример что нужно сделать в javascript. Более того, мне нужно иметь возможность добавлять пользователя из командной строки, используя какой-то сценарий оболочки.

Если кто-то может

а) указать мне на некоторые твердые примеры использования JavaScript с MongoDB и

б) как я могу сделать это из командной строки?

ответ

11

кли Mongo сообщает вам сам, как использовать его с файлом Js

$ mongo --help 
MongoDB shell version: 2.0.3 
usage: mongo [options] [db address] [file names (ending in .js)] 
... 

использование: Монго [опции] [дб адрес] [имя файла (окончание в .js)]

Например:

$ echo 'db.addUser("guest", "passwordForGuest", true);' > file.js 
$ mongo mydb file.js 
MongoDB shell version: 2.0.3 
connecting to: mydb 
{ "n" : 0, "connectionId" : 1, "err" : null, "ok" : 1 } 
{ 
    "user" : "guest", 
    "readOnly" : true, 
    "pwd" : "b90ba46d452e5b5ecec64cb64ac5fd90", 
    "_id" : ObjectId("4fbea2b013aacb728754fe10") 
} 

Udpate:
db.addUser устаревшим, начиная с 2,6
https://docs.mongodb.com/v2.6/reference/method/db.addUser/

использование вместо db.createUser:

// file.js 
db.createUser(
    { 
    user: "guest", 
    pwd: "passwordForGuest", 
    roles: [ { role: "read", db: "mydb" } ] 
    } 
) 

$ mongo mydb file.js

+0

Как назначить роли таким образом? Команда addUser оболочки кажется непоследовательной - для нее требуется только один параметр документа. http://docs.mongodb.org/manual/tutorial/add-user-administrator/ Существуют ли документы API для Javascript (по сравнению с оболочкой). Ссылка здесь: http://api.mongodb.org/js/current/ не содержит фактической документации. – user48956

+0

Вы должны задать вопрос, если у вас есть вопрос, так как это не связано с этим ответом. – AD7six

+0

Кажется, что 'addUser()' устарел и был заменен на 'createUser()'. – twiz

0

http://www.mongodb.org/display/DOCS/Scripting+the+shell

или написать скрипт, используя ваш любимый язык сценариев с использованием зависимого драйвера родственного языка MongoDB.

+1

Я ниспровергаю, потому что вы не прочитали вопрос и связали страницу, прочитанную пользователем, и не дали ответа. –

2

Вот более простое и элегантное решение:

echo 'db.addUser("<username>", "<password>");' | mongo <database> 

Испытано с MongoDB 2.4.8

Смежные вопросы