我们通常通过 MongoDB Shell 访问 MongoDB Server,在 shell 中执行指令以完成各种操作,比如说复制集初始化、用户添加等等。但是,在实际过程中运维过程中有些操作是固定常用的,类似这些操作我们可以将其写入 js 文件,在Linux的 shell 中执行 mongo xxx.js 这样指令完成我们的操作, 下面举例说明。
添加用户
- 给 admin 数据库添加一个 bruce账户
//addBruce.js
db.getSiblingDB("admin").runCommand({
"createUser" : "bruce",
"db" : "admin",
"pwd" : "123456",
"roles" : [
{
"role" : "readAndWriteAnyDatabase",
"db" : "admin"
}
]
});
- 执行命令
[root@iZu1qhttxe5Z js]# mongo ./addBruce.js
MongoDB shell version v3.4.5
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.5
[root@iZu1qhttxe5Z js]#
- 通过 MongoDB Shell 查看直接结果
> use admin
switched to db admin
> show users
{
"_id" : "admin.bruce",
"user" : "bruce",
"db" : "admin",
"roles" : [
{
"role" : "readAndWriteAnyDatabase",
"db" : "admin"
}
]
}
>
NOTE
这里需要特别注意在 MongoDB Shell 中使用的 use admin、 show users、show collections 指令以及类似的指令不能出现在 js 文件中。因为它不是 JavaScript 语法,我们只能在 js 文件调用对应的方法去执行相应的操操作。
# 切换数据库,类似于 use 操作
db.getSiblingDB("xxx")
# 在对应的数据库上执行指令
db.getSiblingDB("xxx").runCommand({xxxx})
# 倘若是需要在 admin 数据库上执行指令,更简单
db.adminCommand({xxx})
#更多指令查看官方文档