2012-05-24 8 views
5

Ich bin gerade dabei, mongodb einzurichten, und wir verwenden Marionetten, um die Konfiguration unserer Server zu steuern.Wie kann ich ein Skript verwenden, um Benutzer in mongodb zu erstellen?

Ich habe die meisten Dinge eingerichtet, wie ich sie brauche, aber ich muss den Benutzer in der Mongo-Datenbank erstellen.

Ich weiß, wie dies zu tun, um die Mongo-Shell, und ich weiß, dass ich es mit Hilfe von Javascript tun/a Js mit dem Befehl

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

Allerdings habe ich nicht in der Lage gewesen, ein solides Beispiel zu finden was benötigt wird, um dies in Javascript zu tun. Mehr noch, ich muss in der Lage sein, einen Benutzer von der Kommandozeile aus hinzuzufügen, indem ich eine Art Shell-Skript benutze.

Wenn jemand könnte

a) zeigen Sie uns einige festen Beispiele mit Hilfe von Javascript mit mongoDB und

b) Wie kann ich das von der Kommandozeile zu tun?

Antwort

11

Mongo cli sagt Ihnen selbst, wie es verwenden, um mit einer js Datei

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

Nutzung: Mongo [Optionen] [db-Adresse] [Dateinamen (in Js Endung)]

Zum Beispiel:

$ 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 seit 2.6 veraltet
https://docs.mongodb.com/v2.6/reference/method/db.addUser/

Verwendung db.createUser statt:

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

$ mongo mydb file.js

+0

Wie können Rollen auf diese Weise zugewiesen werden? Der Befehl shell addUser scheint inkonsistent zu sein - er benötigt nur einen einzigen Dokumentparameter. http://docs.mongodb.org/manual/tutorial/add-user-administrator/ Gibt es API-Dokumente für Javascript (vs. die Shell). Der Link hier: http://api.mongodb.org/js/current/ enthält keine aktuelle Dokumentation. – user48956

+0

Sie sollten eine Frage stellen, wenn Sie eine Frage haben, da diese nicht mit dieser Antwort verbunden ist. – AD7six

+0

Es scheint, dass 'addUser()' veraltet ist und durch 'createUser()' ersetzt wurde. – twiz

0

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

oder ein Skript schreiben, Ihre Lieblings-Skriptsprache die entsprechende Sprache abhängig MongoDB-Treiber.

+1

Ich werde abgemeldet, weil Sie die Frage nicht gelesen und eine Seite verknüpft haben, die der Benutzer gelesen hat, und keine Antwort liefert. –

2

Hier ist eine einfache und elegante Lösung:

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

Getestet mit MongoDB 2.4.8

Verwandte Themen