MongoDB是一个基于分布式文件存储的NoSQL数据库,它也是最像关系型数据库的NoSQL数据库。MongoDB官方提供了两个客户端工具:一个是命令行客户端工具mongoshell;另一个是图形化免费工具MongoDB Compass。
视频讲解如下:
下面分别介绍。
一、命令行客户端工具 mongoshell
mongoshell是MongoDB自带的交互式JavaScript命令行操作接口,可以使用mongoshell查询和更新MongoDB的数据以及执行MongoDB的管理操作。下面通过具体的步骤来演示如何使用mongoshell。
(1)直接在命令行终端执行下面的命令。
mongo --help 输出的信息如下: MongoDB shell version v5.0.6 usage: mongo [options] [db address] [file names (ending in .js)] db address can be: foo foo database on local machine 192.168.0.5/foo foo database on 192.168.0.5 machine 192.168.0.5:9999/foo foo database on 192.168.0.5 machine on port 9999 mongodb://192.168.0.5:9999/foo connection string URI can also be used Options: --ipv6 enable IPv6 support (disabled by default) --host arg server to connect to --port arg port to connect to ......
提示:在不指定任何参数的情况下,mongoshell将连接当前主机的27017端口。
(2)使用mongoshell连接MongoDB服务器端。
mongo 输出的信息如下: MongoDB shell version v5.0.6 connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb Implicit session: session { "id" : UUID("f671c9fe-0786-40f4-b4d1-620efb76f1c0") } MongoDB server version: 5.0.6 ...... >
(3)查看已存在的MongoDB数据库信息。
> show dbs; 输出的信息如下: admin 0.000GB config 0.000GB local 0.000GB
其中:
- admin: 管理库主要用于存储MongoDB的用户、角色等信息。
- config: 配置库用于MongoDB内部存储相关的配置信息。
- local: 本地库主要存储副本集的元数据。
提示:MongoDB建议在使用时创建自己的数据库来存储业务数据。在查询MongoDB数据库信息时,也可以使用的命令:show databases;
(4)创建一个名叫scott的数据库用于存储业务数据。
> use scott;
提示:MongoDB中的数据库不需要预先创建,直接使用use语句即可。
(5)在scott数据库中创建一张员工集合emp用于保存员工数据。
> db.emp.insert( [ {_id:7369,ename:'SMITH' ,job:'CLERK' ,mgr:7902,hiredate:'17-12-80',sal:800,comm:0,deptno:20}, {_id:7499,ename:'ALLEN' ,job:'SALESMAN' ,mgr:7698,hiredate:'20-02-81',sal:1600,comm:300 ,deptno:30}, {_id:7521,ename:'WARD' ,job:'SALESMAN' ,mgr:7698,hiredate:'22-02-81',sal:1250,comm:500 ,deptno:30}, {_id:7566,ename:'JONES' ,job:'MANAGER' ,mgr:7839,hiredate:'02-04-81',sal:2975,comm:0,deptno:20}, {_id:7654,ename:'MARTIN',job:'SALESMAN' ,mgr:7698,hiredate:'28-09-81',sal:1250,comm:1400,deptno:30}, {_id:7698,ename:'BLAKE' ,job:'MANAGER' ,mgr:7839,hiredate:'01-05-81',sal:2850,comm:0,deptno:30}, {_id:7782,ename:'CLARK' ,job:'MANAGER' ,mgr:7839,hiredate:'09-06-81',sal:2450,comm:0,deptno:10}, {_id:7788,ename:'SCOTT' ,job:'ANALYST' ,mgr:7566,hiredate:'19-04-87',sal:3000,comm:0,deptno:20}, {_id:7839,ename:'KING' ,job:'PRESIDENT',mgr:0,hiredate:'17-11-81',sal:5000,comm:0,deptno:10}, {_id:7844,ename:'TURNER',job:'SALESMAN' ,mgr:7698,hiredate:'08-09-81',sal:1500,comm:0,deptno:30}, {_id:7876,ename:'ADAMS' ,job:'CLERK' ,mgr:7788,hiredate:'23-05-87',sal:1100,comm:0,deptno:20}, {_id:7900,ename:'JAMES' ,job:'CLERK' ,mgr:7698,hiredate:'03-12-81',sal:950,comm:0,deptno:30}, {_id:7902,ename:'FORD' ,job:'ANALYST' ,mgr:7566,hiredate:'03-12-81',sal:3000,comm:0,deptno:20}, {_id:7934,ename:'MILLER',job:'CLERK' ,mgr:7782,hiredate:'23-01-82',sal:1300,comm:0,deptno:10} ] ); # 输出的信息如下: BulkWriteResult({ "writeErrors" : [ ], "writeConcernErrors" : [ ], "nInserted" : 14, --> 此处表示成功插入了14条数据。 "nUpserted" : 0, "nMatched" : 0, "nModified" : 0, "nRemoved" : 0, "upserted" : [ ] })
提示:与MongoDB数据库一样,MongoDB的集合也不需要预先创建。直接使用语句操作即可。并且从数据的格式可以看出,这里插入的员工数据采用的JSON格式的字符串。
(6)查看当前数据库中的集合。
> show tables; # 输出的信息如下: emp
提示:此处也可以使用show collections;语句
(7)查看员工集合emp中的数据。
> db.emp.find();
(8)退出mongoshell。
> exit;
(9)编辑mongoshell的启动配置文件。
vi .mongorc.js
提示:当启动mongoshell的时候,mongoshell会检查用户HOME目录下的一个名叫.mongorc.js的JavaScript文件。如果该文件存在,mongoshell会在首次显示提示信息前解析.mongorc.js的内容,并使用该内容来显示mongoshell的命令提示符。这个功能是特别有用的,其实是在MongoDB的分片环境中可以帮助数据库操作人员确认当前操作的MongoDB实例信息。
(10)在.mongorc.js的JavaScript文件中输入下面的内容,并保存退出。
host = db.serverStatus().host; cmdCount = 1; prompt = function() { return db+"@"+host+" " + (cmdCount++) + "> "; }
(11)重新启动mongoshell,并执行几个简单的操作。
mongo 输出的信息如下: test@nosql11 1> use scott switched to db scott scott@nosql11 2> show tables; emp scott@nosql11 3>
提示:由于在.mongorc.js文件中设置了主机名和行号信息,mongoshell提示符便显示了当前操作的主机名、数据库和行号等信息。
二、图形化免费工具 MongoDB Compass
MongoDB Compass是MongoDB官方提供的一个图形化免费工具,它可以使用可视化的方式查询、聚合和分析MongoDB中的数据。MongoDB Compass可以运行在macOS、Windows和Linux操作系统上。MongoDB Compass的主界面。如下图所示: