mongo shell连接到mongoDB及shell提示符下执行js脚本

本文涉及的产品
云数据库 MongoDB,通用型 2核4GB
简介: 同mysql数据库类似,mongoDB也可通过mongo客户端连接到mongod服务器来进行绝大多数日常管理。

同mysql数据库类似,mongoDB也可通过mongo客户端连接到mongod服务器来进行绝大多数日常管理。这个命令行工具就是mongo,在mysql中则是mysql。通过mongo命令可以连接到本机,异机,以及在linux shell或者mongo shell下执行js脚本。本文即是对此展开的描述。

一、mongo客户端连接到mongoDB

//mongo连接格式
$ mongo some-host:30000/myDB 

//连接到本机缺省端口,缺省数据库test
C:\Users\Think>mongo
MongoDB shell version: 3.2.9
connecting to: test

//连接到远程主机副本集,并查看版本
C:\Users\Think>mongo 192.168.1.242:27000
MongoDB shell version: 3.2.9
connecting to: 192.168.1.242:27000/test
repSetTest:PRIMARY> db.version()
3.0.12

//连接到远程主机mongos
C:\Users\Think>mongo 192.168.1.242:27017
MongoDB shell version: 3.2.9
connecting to: 192.168.1.242:27017/test
mongos>

//连接到特定的DB,端口号后加"/"及DB名
C:\Users\Think>mongo 192.168.1.242:27000/tempdb
MongoDB shell version: 3.2.9
connecting to: 192.168.1.242:27000/tempdb
repSetTest:PRIMARY> db
tempdb

//不连接任何DB,然后在提示符下进行连接DB
C:\Users\Think>mongo --nodb
MongoDB shell version: 3.2.9
> db
2016-09-06T14:56:19.323+0800 E QUERY    [thread1] ReferenceError: db is not defined :
@(shell):1:1

> conn = new Mongo("192.168.1.242:27000")
connection to 192.168.1.242:27000
> db = conn.getDB("tempdb")
tempdb
repSetTest:PRIMARY> db
tempdb

//使用connect方式连接数据库
C:\Users\Think>mongo --nodb
MongoDB shell version: 3.2.9
> var db=connect("192.168.1.242:27017/tempdb");
connecting to: 192.168.1.242:27017/tempdb
mongos> var list=db.user.find().toArray();
mongos> printjson(list);
[
        {
                "_id" : ObjectId("57cf79a7ed46066de447aac4"),
                "ename" : "robin"
        },
        {
                "_id" : ObjectId("57cf79aded46066de447aac5"),
                "ename" : "jerry"
        },
        {
                "_id" : ObjectId("57cf79b3ed46066de447aac6"),
                "ename" : "fred"
        }
]

二、shell提示符下执行js脚本

1、调用单个js脚本
# more find.js  
var item=db.user.find({}).toArray();
printjson(item);

# mongo localhost:27000/tempdb find.js  //调用时指定了主机及库名
MongoDB shell version: 3.0.12
connecting to: localhost:27000/tempdb
[
        {
                "_id" : ObjectId("57ce64c4843451f0d789a05e"),
                "ename" : "robin"
        },
        {
                "_id" : ObjectId("57ce6a940b4ef68464e67f8d"),
                "ename" : "fred"
        }
]

2、同时调用多个js脚本,如下,先执行insert.js,然后再执行find.js
# mongo localhost:27000/tempdb insert.js find.js 
MongoDB shell version: 3.0.12
connecting to: localhost:27000/tempdb
loading file: insert.js
loading file: find.js
[
        {
                "_id" : ObjectId("57ce64c4843451f0d789a05e"),
                "ename" : "robin"
        },
        {
                "_id" : ObjectId("57ce6a940b4ef68464e67f8d"),
                "ename" : "fred"
        },
        {
                "_id" : ObjectId("57ce6c6aff7edaac9160fe47"),
                "ename" : "jack"
        }
]

//下面在Windows环境下调用js脚本访问Linux下的mongodb
//命令行下调用时,此时未指定主机及库名,主机及库名在js脚本中定义
C:\Users\Think>type d:\temp\mongo_test.js
var mongo=new Mongo("192.168.1.242:27017");
var db=mongo.getDB("tempdb");
var collection=db.getCollection("user");
var list= collection.find().toArray();
printjson(list);

C:\Users\Think>mongo "d:\temp\mongo_test.js"
MongoDB shell version: 3.2.9
connecting to: test
Cannot use 'commands' readMode, degrading to 'legacy' mode
[
        {
                "_id" : ObjectId("57cf79a7ed46066de447aac4"),
                "ename" : "robin"        //Author: Leshami
        },                               //Blog  : http://blog.csdn.net/leshami     
        {
                "_id" : ObjectId("57cf79aded46066de447aac5"),
                "ename" : "jerry"
        },
        {
                "_id" : ObjectId("57cf79b3ed46066de447aac6"),
                "ename" : "fred"
        }
]

3、mongo提示符下执行使用load调用js
[root@node1 ~]# mongo localhost:27000
MongoDB shell version: 3.0.12
connecting to: localhost:27000/test
repSetTest:PRIMARY> use tempdb
switched to db tempdb
repSetTest:PRIMARY> load("find.js")
[
        {
                "_id" : ObjectId("57ce64c4843451f0d789a05e"),
                "ename" : "robin"
        },
        {
                "_id" : ObjectId("57ce6a940b4ef68464e67f8d"),
                "ename" : "fred"
        },
        {
                "_id" : ObjectId("57ce6c6aff7edaac9160fe47"),
                "ename" : "jack"
        }
]
true

4、命令提示符下直接执行javascript方法
C:\Users\Think>mongo 192.168.1.242:27017/tempdb --eval "printjson(db.getCollectionNames())"
MongoDB shell version: 3.2.9
connecting to: 192.168.1.242:27017/tempdb
[ "system.indexes", "user" ]

5、mongo提示符下调用系统命令
mongos> run("ls","-l","/home/robin")
2016-09-07T09:38:21.907+0800 I -        shell: started program (sh70522):  ls -l /home/robin
sh70522| total 4
sh70522| -rw-r--r-- 1 root root 2 Sep  7 09:38 test.txt
0
相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。   相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
目录
相关文章
|
30天前
|
JavaScript 前端开发 测试技术
使用Selenium执行JavaScript脚本:探索Web自动化的新领域
本文介绍了如何在Selenium中使用JavaScript解决自动化测试中的复杂问题。Selenium的`execute_script`函数用于同步执行JS,例如滑动页面、操作时间控件等。在滑动操作示例中,通过JS将页面滚动到底部,点击下一页并获取页面信息。对于只读时间控件,利用JS去除readonly属性并设置新日期。使用JS扩展了Selenium的功能,提高了测试效率和精准度,适用于各种自动化测试场景。
41 1
|
1月前
|
JavaScript 前端开发 Java
liteflow规则引擎 执行Javascript脚本
liteflow规则引擎 执行Javascript脚本
39 1
|
27天前
|
Shell Linux C语言
【Shell 命令集合 网络通讯 】Linux 关闭PPP(Point-to-Point Protocol)连接 ppp-off命令 使用指南
【Shell 命令集合 网络通讯 】Linux 关闭PPP(Point-to-Point Protocol)连接 ppp-off命令 使用指南
40 1
|
3月前
|
移动开发 JavaScript 数据可视化
分享88个JS播放器脚本,总有一款适合您
分享88个JS播放器脚本,总有一款适合您
40 0
|
3月前
|
移动开发 JavaScript 前端开发
分享95个JS表单脚本,总有一款适合您
分享95个JS表单脚本,总有一款适合您
27 0
|
3月前
|
移动开发 JavaScript 前端开发
分享106个JS表单脚本,总有一款适合您
分享106个JS表单脚本,总有一款适合您
17 0
|
3月前
|
移动开发 JavaScript 前端开发
分享98个JS表单脚本,总有一款适合您
分享98个JS表单脚本,总有一款适合您
21 0
|
3月前
|
JavaScript 前端开发 Unix
Node.js Shell 脚本开发指南(中)
Node.js Shell 脚本开发指南(中)
|
2月前
|
消息中间件 Web App开发 JavaScript
Node.js【简介、安装、运行 Node.js 脚本、事件循环、ES6 作业队列、Buffer(缓冲区)、Stream(流)】(一)-全面详解(学习总结---从入门到深化)
Node.js【简介、安装、运行 Node.js 脚本、事件循环、ES6 作业队列、Buffer(缓冲区)、Stream(流)】(一)-全面详解(学习总结---从入门到深化)
70 0
|
27天前
|
监控 网络协议 Linux
【Shell 命令集合 网络通讯 】Linux 显示网络 连接、路由表和网络接口信息 netstat命令 使用指南
【Shell 命令集合 网络通讯 】Linux 显示网络 连接、路由表和网络接口信息 netstat命令 使用指南
53 1