MongoDB是一个基于分布式文件存储的NoSQL数据库,它也是最像关系型数据库的NoSQL数据库。MongoDB官方提供了两个客户端工具:一个是命令行客户端工具mongoshell;另一个是图形化免费工具MongoDB Compass。视频讲解如下:
下面分别介绍。
一、命令行客户端工具 mongoshell
mongoshell是MongoDB自带的交互式JavaScript命令行操作接口,可以使用mongoshell查询和更新MongoDB的数据以及执行MongoDB的管理操作。下面通过具体的步骤来演示如何使用mongoshell。
(1)直接在命令行终端执行下面的命令
代码语言:powershell复制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服务器端。
代码语言:powershell复制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数据库信息。
代码语言:powershell复制> show dbs;
输出的信息如下:
admin 0.000GB
config 0.000GB
local 0.000GB
其中:
admin: 管理库主要用于存储MongoDB的用户、角色等信息。
config: 配置库用于MongoDB内部存储相关的配置信息。
local: 本地库主要存储副本集的元数据。
提示:MongoDB建议在使用时创建自己的数据库来存储业务数据。在查询MongoDB数据库信息时,也可以使用下面的命令。 show databases;
(4)创建一个名叫scott的数据库用于存储业务数据。
代码语言:powershell复制> use scott;
提示:MongoDB中的数据库不需要预先创建,直接使用use语句即可。
(5)在scott数据库中创建一张员工集合emp用于保存员工数据。
代码语言:powershell复制> 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)查看当前数据库中的集合。
代码语言:powershell复制> show tables;
输出的信息如下:
emp
提示:此处也可以使用show collections;语句
(7)查看员工集合emp中的数据。
db.emp.find();
(8)退出mongoshell。
代码语言:powershell复制> exit;
(9)编辑mongoshell的启动配置文件。
代码语言:powershell复制vi .mongorc.js
提示:当启动mongoshell的时候,mongoshell会检查用户HOME目录下的一个名叫.mongorc.js的JavaScript文件。如果该文件存在,mongoshell会在首次显示提示信息前解析.mongorc.js的内容,并使用该内容来显示mongoshell的命令提示符。这个功能是特别有用的,其实是在MongoDB的分片环境中可以帮助数据库操作人员确认当前操作的MongoDB实例信息。
(10)在.mongorc.js的JavaScript文件中输入下面的内容,并保存退出。
代码语言:powershell复制host = db.serverStatus().host;
cmdCount = 1;
prompt = function() {
return db "@" host " " (cmdCount ) "> ";
}
(11)重新启动mongoshell,并执行几个简单的操作。
代码语言:powershell复制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的主界面。如下图所示。