【赵渝强老师】MongoDB的客户端工具

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: MongoDB 是一个基于分布式文件存储的 NoSQL 数据库,提供了命令行客户端工具 mongoshell 和图形化工具 MongoDB Compass。mongoshell 可以进行数据查询和管理操作,而 MongoDB Compass 则支持可视化查询、聚合和数据分析。本文介绍了如何使用 mongoshell 连接 MongoDB 服务器、创建数据库和集合、插入数据以及配置命令提示符。同时,还展示了 MongoDB Compass 的主界面及其功能。

b047.png

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的主界面。如下图所示:




相关实践学习
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
相关文章
|
19天前
|
存储 NoSQL MongoDB
【赵渝强老师】MongoDB的MMAPv1存储引擎
在MongoDB 3.2版本之前,默认使用MMAPv1存储引擎。MMAPv1包括Database、Namespace、数据文件、Extent和Record等组件。每个Database由名称空间文件和数据文件组成,数据文件按编号递增,大小从64MB到2GB。每个数据文件被划分为多个Extent,每个Extent包含多个Record,对应MongoDB中的文档。通过一个示例展示了如何配置和使用MMAPv1存储引擎。
|
19天前
|
存储 NoSQL 关系型数据库
【赵渝强老师】MongoDB的存储结构
MongoDB 是一个可移植的 NoSQL 数据库,支持跨平台运行。其逻辑存储结构包括数据库、集合和文档,而物理存储结构则由命名空间文件、数据文件和日志文件组成。视频讲解和示意图进一步解释了这些概念。
|
19天前
|
存储 缓存 NoSQL
【赵渝强老师】MongoDB的WiredTiger存储引擎
MongoDB WiredTiger存储引擎自3.2版本起成为默认选择,提供文档级别的并发控制、检查点、数据压缩和本地加密等功能。本文详细介绍了WiredTiger的并发控制机制、预写日志与检查点、内存使用、数据压缩及磁盘空间回收等特性。
|
19天前
|
存储 NoSQL MongoDB
【赵渝强老师】MongoDB的In-Memory存储引擎
MongoDB的In-Memory存储引擎将数据存储在内存中,显著减少查询延迟,提高性能。该引擎不会将数据持久化到硬盘,仅在内存中存储,因此重启后数据会丢失。本文通过创建目录、配置文件、启动服务、插入数据和查询等步骤,详细演示了如何使用In-Memory存储引擎。
|
19天前
|
存储 NoSQL MongoDB
【赵渝强老师】MongoDB的存储引擎
存储引擎是MongoDB的核心组件,负责管理数据在硬盘和内存中的存储方式。从3.2版本起,MongoDB支持WiredTiger、MMAPv1和In-Memory三种存储引擎。WiredTiger为默认引擎,提供文档级并发控制和数据压缩;MMAPv1在3.2版本前为默认引擎,4.x版本后不再支持;In-Memory引擎将数据存储在内存中,减少查询延迟。
|
19天前
|
存储 NoSQL MongoDB
【赵渝强老师】MongoDB复制集中的成员
MongoDB复制集通常由一个主库和两个从库组成,可选添加仲裁者。主库负责所有写操作并记录Oplog日志,从库异步同步主库的Oplog日志并应用操作。仲裁者不存储数据,主要用于保证复制集中成员数量为奇数,参与选举投票。视频讲解详见B站链接。
|
19天前
|
存储 NoSQL MongoDB
【赵渝强老师】MongoDB复制集的体系架构
MongoDB的复制集是一种集群技术,由一个Primary节点和多个Secondary节点组成,实现数据的高可用性。Primary节点处理写入请求,Secondary节点同步数据。当Primary节点故障时,Secondary节点可通过选举成为新的Primary节点。视频讲解和示意图详见正文。
|
19天前
|
存储 NoSQL 网络协议
【赵渝强老师】MongoDB的安装与访问
本文介绍了在Linux系统上安装和部署MongoDB的详细步骤,包括安装依赖包、解压安装包、配置环境变量、创建数据目录及启动服务等。文中还提供了相关命令示例和注意事项,帮助用户顺利完成MongoDB的安装与配置。
|
2月前
|
存储 关系型数据库 MySQL
一个项目用5款数据库?MySQL、PostgreSQL、ClickHouse、MongoDB区别,适用场景
一个项目用5款数据库?MySQL、PostgreSQL、ClickHouse、MongoDB——特点、性能、扩展性、安全性、适用场景比较
|
1月前
|
NoSQL Cloud Native atlas
探索云原生数据库:MongoDB Atlas 的实践与思考
【10月更文挑战第21天】本文探讨了MongoDB Atlas的核心特性、实践应用及对云原生数据库未来的思考。MongoDB Atlas作为MongoDB的云原生版本,提供全球分布式、完全托管、弹性伸缩和安全合规等优势,支持快速部署、数据全球化、自动化运维和灵活定价。文章还讨论了云原生数据库的未来趋势,如架构灵活性、智能化运维和混合云支持,并分享了实施MongoDB Atlas的最佳实践。

相关产品

  • 云数据库 MongoDB 版