认识 MongoDB
Posted 小小后端
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了认识 MongoDB相关的知识,希望对你有一定的参考价值。
大部分数据库都是 C/S 架构,服务端提供服务,操作时需要使用客户端。
MongoDB 也是如此,需要启动服务端进程 mongod 提供服务,然后使用其自带的 mongo 命令行程序或者其它客户端与服务端通信进行相应的操作。
本文先对服务端进行一些简单介绍,让大家了解一些概念,然后使用客户端程序连接服务器,加深对一些概念的理解。
1 服务端
先了解 3 个名词:数据库、集合、文档。它们的关系如图
-
数据是以文档的形式进行存储的,每个文档代表一条数据 -
集合一般用于容纳相同类型的文档 -
数据库一般用于容纳相同业务或者应用下的集合
如果你之前对关系型数据库有了解,可以将文档理解为行,集合理解为表。
一个服务器支持管理多个数据库,通过客户端我们可以对不同库下面的集合、文档做一些数据定义、数据修改等操作,在库和集合的基础上,我们还能设置不同的访问权限。
PS:对于名词「服务器」或者「服务端」我做下说明,在本文它们都指的是提供服务的 mongod 进程,并非提供硬件支持的计算机
2 客户端
mongo 是 MongoDB 自带的命令行客户端工具,本文暂时不会用到它,因为现在的目的是让大家看下数据库到底长什么样,所以用官方提供的 GUI 工具 Compass 更合适。
https://www.mongodb.com/try/download/compass
怎么安装呢?
对于 macOS 平台,选择平台 OS X 64-bit
下载 dmg 镜像后,打开 dmg 将 Compass 拖入到应用程序中即可。
对于 Windows 平台,可以选择平台 Windows 64-bit(zip)
下载一个压缩包,解压后执行 MongoDBCompass.exe
就可以使用了。当然,你也可以下载其它类型的文件,比如 msi 等,进行安装。这里使用压缩包相对简单点,不用安装直接执行 exe,方便大家能比较顺利的使用上 Compass。
打开后界面是这样的
PS:由于我之前用过,所以左边栏 Recents 下历史记录,如果是第一次打开,Recents 下是空的
我们可以访问 MongoDB 大学提供的示例数据,在界面中间的输入框中输入如下连接串
mongodb+srv://m001-student:m001-mongodb-basics@cluster0-jxeqq.mongodb.net/test
简单理解下这个连接串的内容
-
mongodb+srv 使用的协议 -
m001-student:m001-mongodb-basics 用户名、密码 -
cluster0-jxeqq.mongodb.net 服务器地址 -
test 默认数据库
点击 CONNECT 后,我们会看到如下界面
可以看到四块信息
-
左上是一些概览信息,可以看到数据库以及集合的总量 -
左中是服务器以及集群的信息,这里我们可以先忽略,后面集群相关的文章看了后自然就明白了 -
左下是所有的数据库列表 -
右边也是一个数据库列表,不过有额外的一些统计信息。从左到右依次是库所占的存储空间、该库含有的集合数量、该库中所有集合建立的索引数量
需要注意的是,上面的信息都是当前用户能看到的一些信息,如果该用户没有某些库或者集合的权限,他是看不到这些信息的。
我们下拉右边的列表,找到数据库 video 后点击后可以看到一个集合列表
对于每一个集合我们也可以看到一些统计信息,从左到右依次是文档数量、平均每个文档所占存储空间大小、总的文档大小、索引数量、总的索引大小,还有就是其它的一些属性信息。
点击集合 movies 看下详细信息
其中
-
video.movies 叫做命名空间,他由数据库名和集合名以点号连接而成,后面我们用它来定位一个集合 -
Documents 标签页下列出了当前集合的部分文档,我们可以在查询框中输入查询条件进行查询,其它标签页的内容我们先不关注 -
文档记录了具体的数据信息,每个文档都必须有一个唯一的主键 _id
我们看第一个文档,除了 _id
外,它记录了电影标题、年代、编号等信息。如果要查询 2020 年的电影,该怎么做呢?MongoDB 有自己的一套查询语言,这里会用到等值查询。在查询框中输入
{'year': 2020}
点击 Find,我们就能找到 2020 年的电影了。如果要查询 2000 以及之后的电影呢?使用下面的查询条件即可
{'year': {'$gte': 2000}}
对于 MongoDB 怎么使用查询,后面的文章会比较详细的介绍,这里大家简单了解下就行。
3 小节
本文主要介绍了 MongoDB 的一些基础概念,并用 Compass 连接服务做了一些简单操作,主要目的是让大家对数据库有了一个大概的认识。
4 参考
-
https://university.mongodb.com/mercury/M001/2020_July_7/chapter/Chapter_1_Introduction/lesson/594f8566a25de40c889d8a45/lecture -
https://university.mongodb.com/mercury/M001/2020_July_7/chapter/Chapter_0_Setup/lesson/594d8f1e8c07c3a9b60bdfb3/lecture
以上是关于认识 MongoDB的主要内容,如果未能解决你的问题,请参考以下文章