mongoDB非交互式执行sql操作,实现类似 mysql -e 的效果。
在admin库创建数据库超管用户
echo -e "use admin;\ndb.createUser({user:\"root\",pwd:\"Root@123\",roles:[ { role:\"userAdminAnyDatabase\",db:\"admin\"}]})" | /path/to/mongo --host 127.0.0.1 --port 27017
echo -e "use admin;\n show tables;" | /path/to/mongo --host 127.0.0.1 -u root -p "Root@123" --authenticationDatabase admin
获取集合(实例)名
$ echo -e "rs.status()['set']" | /path/to/mongo --quiet "mongodb://${username}:${password}@${ip}:${port}"
echo -e "show dbs" | /path/to/mongo --quiet --host=xx.xx.xx.xx --port=27017 -u username -p 'XXX' --authenticationDatabase=admin
echo -e "use testDB;\n db..testColl.findOne()" | /path/to/mongo --quiet --host=xx.xx.xx.xx --port=27017 -u username -p 'XXX' --authenticationDatabase=admin
echo -e "use testDB;\n db.testColl.remove({})" | /path/to/mongo --quiet --host=xx.xx.xx.xx --port=27017 -u username -p 'XXX' --authenticationDatabase=admin
参考
mongoDB的正确的连接方式
https://www.jianshu.com/p/ed008cec4e4a
网友评论