我想从shell脚本向mongodb发送命令。在Mongodb 2.6之前,我可以使用以下命令执行此操作:
mongo --host db.example.com/mydb -u myuser -pMyPassword --eval 'db.getSiblingDB("mydb").addUser("someone","passss")';
或者我可以运行一个javascript文件,提供它:
mongo --host db.example.com/mydb -u myuser -pMyPassword some.js;
升级到2.6版本的Mongodb后,这些命令对我来说不再适用。
有没有办法选择数据库并在其上运行命令?请记住,我想从linux shell脚本运行命令。
或者是否有更好的方法来添加mongodb用户并从shellcript运行javascript文件?
答案 0 :(得分:0)
根据mongodb help,您可以使用以下行在外部脚本中连接数据库。
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 }