我们通常通过 MongoDB Shell 访问 MongoDB Server,在 shell 中执行指令以完成各种操作,比如说复制集初始化、用户添加等等。
但是,在实际过程中运维过程中有些操作是固定常用的,类似这些操作我们可以将其写入 js 文件,在Linux的 shell 中执行 mongo xxx.js
这样指令完成我们的操作, 下面举例说明。
添加用户
1、给 admin 数据库添加一个 bruce账户
//addBruce.jsdb.getSiblingDB("admin").runCommand({ "createUser" : "bruce", "db" : "admin", "pwd" : "123456", "roles" : [ { "role" : "readAndWriteAnyDatabase", "db" : "admin" } ]});
2、执行命令
[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]#
3、通过 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}) #更多指令查看官方文档
更多技术请关注。