2014-12-01 5 views
1

쉘 스크립트에서 mongodb에 명령을 보내려고합니다.mongodb를 연결하는 동안 데이터베이스 선택

mongo --host db.example.com/mydb -u myuser -pMyPassword --eval 'db.getSiblingDB("mydb").addUser("someone","passss")'; 

또는 내가 좋아 제공하는 자바 스크립트 파일을 실행할 수 있습니다 : MongoDB를 2.6 전에 나는 다음과 같은 명령을 사용하여이 작업을 수행 할 수

mongo --host db.example.com/mydb -u myuser -pMyPassword some.js; 

MongoDB를 2.6 버전으로 업그레이드 한 후,이 명령이 더 이상 작동 나를 위해.

데이터베이스를 선택하고 명령을 실행할 수있는 방법이 있습니까? 리눅스 쉘 스크립트에서 명령을 실행하고 싶다는 것을 기억하십시오.

또는 mongodb 사용자를 추가하고 셸 스크립트에서 javascript 파일을 실행하는 더 좋은 방법이 있습니까?

+0

'mongo --help'와'mongo --version'을 사용해 보셨습니까? –

+0

예 첫 번째 명령에 '--authenticationDatabase'인수를 사용하려고 시도했습니다. 하지만 두 번째 명령에서는 작동하지 않습니다. – Muatik

+0

"나를 위해 작동하지 않습니다"는 문제를 잘 설명하지 못합니다. 무슨 말/불평합니까? 그리고 무엇에 대해? –

답변

0

mongodb help에 따르면 다음 줄을 사용하여 외부 스크립트에서 db를 연결할 수 있습니다.

db = connect("localhost:27020/myDatabase"); 

또한 너무

mongo localhost:27017/test myjsfile.js 

예를 들어 실행 다음을 참조하십시오 다음 줄을 사용할 수 있습니다.

$$>mongo --version 
MongoDB shell version: 2.6.4 
$$>mongo 
MongoDB shell version: 2.6.4 
connecting to: test 
> show dbs 
admin (empty) 
local 0.078GB 
test 0.078GB 
> use stackoverflow 
switched to db stackoverflow 
> db.questions.insert({a:1}) 
WriteResult({ "nInserted" : 1 }) 
> show collections 
questions 
system.indexes 
> db.questions.findOne() 
{ "_id" : ObjectId("547d95c671d7e080cfe5f977"), "a" : 1 } 
> exit 
bye 


$$>mongo test --eval "printjson(db.questions.findOne())" 
MongoDB shell version: 2.6.4 
connecting to: test 
null 

$$>mongo stackoverflow --eval "printjson(db.questions.findOne())" 
MongoDB shell version: 2.6.4 
connecting to: stackoverflow 
{ "_id" : ObjectId("547d95c671d7e080cfe5f977"), "a" : 1 } 
+0

이미 두 번째 버전을 사용하고 있었지만 2.6으로 업그레이드 한 후 데이터베이스를 선택하지 않았습니다. 첫 번째 것은 리눅스 셸 스크립트에서 사용할 수 없다고 생각합니다. – Muatik

+0

@Muatik 나는 기본적인 실수를하고 있다고 생각합니다. 나는 그들이 대답하는 것처럼 내 대답을 업데이트했다. –

관련 문제