MongoDB 执行 js 文件

我们通常通过 MongoDB Shell 访问 MongoDB Server,在 shell 中执行指令以完成各种操作,比如说复制集初始化、用户添加等等。但是,在实际过程中运维过程中有些操作是固定常用的,类似这些操作我们可以将其写入 js 文件,在Linux的 shell 中执行 mongo xxx.js 这样指令完成我们的操作, 下面举例说明。

添加用户

  1. 给 admin 数据库添加一个 bruce账户
//addBruce.js
db.getSiblingDB("admin").runCommand({
   "createUser" : "bruce",
   "db" : "admin",
   "pwd" : "123456",
   "roles" : [
        {
            "role" : "readAndWriteAnyDatabase",
            "db" : "admin"
        }
    ]
});
  1. 执行命令
[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]# 
  1. 通过 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})

#更多指令查看官方文档

References:

mongo Shell Methods
Database Commands

你可能感兴趣的:(MongoDB 执行 js 文件)