2012-05-24 38 views
5

Tôi đang trong quá trình thiết lập mongodb và chúng tôi sử dụng con rối để kiểm soát cấu hình máy chủ của chúng tôi.Tôi làm cách nào để sử dụng tập lệnh để tạo người dùng trong mongodb?

Tôi đã thiết lập hầu hết mọi thứ về cách tôi cần chúng, nhưng tôi cần tạo người dùng bên trong cơ sở dữ liệu mongo.

tôi biết làm thế nào để làm điều này bằng cách sử dụng vỏ Mongo, và tôi biết rằng tôi có thể làm điều đó bằng javascript/A .js bằng cách sử dụng lệnh

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

Tuy nhiên, tôi đã không thể tìm thấy một ví dụ rắn những gì cần thiết để làm điều này trong javascript. Thêm vào vấn đề này, tôi cần có thể thêm người dùng từ dòng lệnh, sử dụng một số loại kịch bản lệnh shell.

Nếu ai đó có thể

a) chỉ cho tôi một số ví dụ rắn của việc sử dụng javascript với MongoDB và

b) làm thế nào tôi có thể làm điều này từ dòng lệnh?

Trả lời

11

cli Mongo của cho bạn biết bản thân làm thế nào để sử dụng nó với một file js

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

sử dụng: Mongo [options] [địa chỉ db] [tên tập tin (kết thúc bằng .js)]

Ví dụ:

$ 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 bị phản đối từ 2,6
https://docs.mongodb.com/v2.6/reference/method/db.addUser/

sử dụng db.createUser thay vì:

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

$ mongo mydb file.js

+0

Vai trò có thể được chỉ định như thế nào? Lệnh shell addUser có vẻ không nhất quán - nó chỉ mất một tham số tài liệu đơn. http://docs.mongodb.org/manual/tutorial/add-user-administrator/ Có tài liệu API cho Javascript (so với trình bao) hay không. Liên kết ở đây: http://api.mongodb.org/js/current/ không chứa tài liệu thực tế. – user48956

+0

Bạn nên đặt câu hỏi, nếu bạn có câu hỏi, vì đó không phải là câu hỏi liên quan đến câu trả lời này. – AD7six

+0

Có vẻ như 'addUser()' đã không được chấp nhận và đã được thay thế bởi 'createUser()'. – twiz

0

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

hoặc viết một kịch bản sử dụng ngôn ngữ kịch bản yêu thích của bạn bằng cách sử dụng ngôn ngữ có liên quan phụ thuộc tài xế MongoDB.

+1

Tôi đang giảm hạng vì bạn không đọc câu hỏi và đã liên kết một trang mà người dùng đã đọc và không cung cấp câu trả lời. –

2

Dưới đây là một giải pháp đơn giản hơn và thanh lịch:

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

Thử nghiệm với MongoDB 2.4.8

Các vấn đề liên quan