我们通常通过 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})

#更多指令查看官方文档

更多技术请关注云海天Python教程。

来源:PY学习网:原文地址:https://www.py.cn/article.html

hmoban主题是根据ripro二开的主题,极致后台体验,无插件,集成会员系统
自学咖网 » mongodb如何执行js