头图

  MongoDB是一个基于分布式文件存储的NoSQL数据库,它也是最像关系型数据库的NoSQL数据库。MongoDB官方提供了两个客户端工具:一个是命令行客户端工具mongoshell;另一个是图形化免费工具MongoDB Compass。视频讲解如下:
https://www.bilibili.com/video/BV1XS411P7dE/?aid=1905677249&c...

  下面分别介绍。

一、命令行客户端工具 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的主界面。如下图所示。
在这里插入图片描述


赵渝强老师
30 声望10 粉丝

20年以上的IT行业从业经历,清华大学计算机软件工程专业毕业,京东大学大数据学院院长,Oracle中国有限公司高级技术顾问;曾在BEA、甲骨文、摩托罗拉等世界500强公司担任高级软件架构师或咨询顾问等要职,精通大...