数人之道原创文章,转载请联系我们
MongoDB Compass 是 MongoDB 官网开发及提供的 MongoDB GUI(图形化用户界面)管理工具。它能以视觉化的方式探索数据、在数秒内运行即时查询、创建数据库及管理集合和文档、与数据交换实现 CRUD 功能、查看和优化查询性能、构建地理查询等。让你能在索引、文档验证等方面作出更合理的决策。提供 Linux、Mac 及 Windows 版本。
1
Compass 介绍
以下是官网对 MongoDB Compass 的介绍。
1.1
利用内置的模式可视化了解数据
MongoDB Compass 可分析您的文档,并通过直观的 GUI 显示您的集合内的丰富结构。它让您可以快速展现和探索您的模式,以了解数据集的频率、种类和字段范围。
1.2
即刻了解服务器状态和查询性能
实时服务器统计信息让您可以查看关键的服务器指标和数据库操作。轻松地深入分析数据库操作,了解您最活跃的集合。
1.3
对地理空间数据进行可视化查看、了解和操作
点击构建复杂的查询,然后一键执行查询,Compass 会按地理位置为您显示结果,还会将结果显示为多组 JSON 文档。
1.4
更佳的 CRUD 操作方式使得数据交互更容易
利用直观的可视化编辑器更放心地修改现有文档,或者点击几下即完成插入、复制或删除文档
1.5
利用可视化解释计划了解性能问题
通过简单易懂的 GUI 了解查询的运行情况,发现和解决性能问题。
1.6
查看利用率以及管理索引
了解您索引的类型、大小、利用率和特殊属性。一键添加和移除索引。
1.7
更简单的数据验证方式
在智能编辑器中编写 JSON 架构验证规则,其可自动建议字段名称、BSON 数据类型和验证关键字。对通过和未通过验证规则的文档进行实时预览,可以轻松查看规则是否具有预期的行为。
1.8
通过插件扩展
Compass 插件框架以 API 形式开放,用户能够对其进行扩展。想要其他功能?您可以安装插件或自行构建。
1.9
聚合变得轻而易举
在直观的 UI 中构建聚合管道。代码骨架和自动填写功能便于轻松构建阶段,而文档预览则可以显示该阶段是否正在执行您所需的操作。添加和删除阶段,或通过拖放在管道中重新排序。完成后,导出到原生代码以在您的应用程序中使用。
2
Compass 安装
通过以下地址到 MongoDB 的官网下载 Compass,并进行安装:
https://www.mongodb.com/try/download/compass
目前提供 Windows、Mac、RedHat、Ubuntu 的版本可供下载。这里下载 Windows 版本进行安装。
下载 msi 格式的安装文件,可直接进行安装。
3
Compass 配置
使用 MongoDB Compass 前,需要配置 Compass 的连接信息,以连接 MongoDB 数据库服务器进行访问。
3.1
配置前准备
进行 MongoDB Compass 配置前,需要先对服务器的 mongod.conf 及 sshd_config 配置文件进行修改。
3.1.1. 修改 mongod.conf 配置文件
在安装 MongoDB 的服务器上编辑 mongod.conf 配置文件(MongoDB 的安装介绍请查看《初识 MongoDB - MongoDB 介绍及安装》):
代码语言:javascript复制sudo vim /etc/mongod.conf
将 net.bindIp 参数由 127.0.0.1(默认只允许本地连接),修改为 0.0.0.0 (允许所有 IP 地址连接):
图3-1-1:修改 mongod.conf 配置文件
3.1.2. 修改 sshd_config 配置文件
在安装 MongoDB 的服务器上编辑 sshd_config 配置文件:
代码语言:javascript复制sudo vim /etc/ssh/sshd_config
在文件末添加一行,允许其通过 TCP 进行连接:
代码语言:javascript复制AllowTcpForwarding yes
图3-1-2:修改 sshd_config 配置文件
3.1.3. 重启 ssh
使用以下命令重启 ssh:
代码语言:javascript复制sudo service sshd restart
3.1.4. 重启 MongoDB 服务
使用以下命令重启 MongoDB 服务:
代码语言:javascript复制sudo systemctl daemon-reload
重启后查看服务状态。
3.2
配置 Compass
打开 MongoDB Compass 应用程序,进入 Compass 后首先出现连接界面如下(连接字符串模式):
图3-2-1:MongoDB Compass 初始界面
连接信息字符串格式为:
代码语言:javascript复制mongodb://[username:password@]host1[:port1][,...hostN[:portN]][/[defaultauthdb][?options]]
以笔者的单机(Standalone)安装模式为例,连接地址信息为(默认端口号为 27017):
代码语言:javascript复制mongodb://hadoop100:27017/?readPreference=primary&appname=MongoDB Compass&ssl=false
也可以切换到连接信息配置模式下输入连接信息:
图3-2-2:MongoDB Compass 连接信息配置
设置完成后,点击 Connect,即可连接到 MongoDB:
图3-2-3:查看 MongoDB 数据库
可以看到安装 MongoDB 后默认初始创建的三个数据库,左侧显示Database 列表,右侧是 Database 的存储大小、Collections 数量以及Indexes 数量信息。
4
Compass 使用
下面举几个常用操作的例子,了解如何使用 MongoDB Compass。
4.1
创建及删除数据库
点击 CREATE DATABASE 按钮,即可创建数据库,同时必须创建一个集合:
图4-1-1:Compass 创建数据库
点击垃圾桶按钮,并输入数据库名称,即可删除数据库:
图4-1-2:Compass 删除数据库
操作都十分便捷。
4.2
增加及删除集合(对象)
点击数据库名称进入数据库后,点击 CREATE COLLECTION 按钮,即可增加集合(对象):
图4-2-1:Compass 新增集合
点击垃圾桶按钮,并输入集合名称,即可删除集合:
图4-2-2:Compass 删除集合
Capped Collection 为固定集合,即对于大小固定,我们可以想象其就像一个环形队列,当集合空间用完后,再插入的元素就会覆盖最初始的头部的元素。
4.3
插入、更新及删除文档
点击集合名称进入集合后,可查看存储在该集合下的所有文档数据。文档数据的查看方式有三种:list、bson、table.
图4-3-1:Compass list 形式展示文档数据
图4-3-2:Compass bson 形式展示文档数据
图4-3-3:Compass table 形式展示文档数据
4.3.1. 插入文档
插入文档数据的方式有两种:从文件导入、手动输入文档数据。
点击 ADD DATA 按钮下的 Import File,通过导入 JSON 或 CSV 文件的方式插入文档数据:
图4-3-4:Compass 通过导入文件方式插入文档数据
数据文件来源:《如何快速获取并分析自己所在城市的房价行情?》
点击 ADD DATA 按钮下的 Insert Document,通过手动输入的方式插入文档:
图4-3-5:Compass 通过手动输入方式插入文档数据
4.3.2. 更新文档
点击每条文档数据记录的编辑按钮,即可对该文档数据记录进行更新,包括修改数据类型、增加及删除文档元素、修改文档元素的键名称及值内容:
图4-3-6:Compass 更新文档数据类型
图4-3-7:Compass 更新文档数据
4.3.3. 删除文档
点击每条文档数据记录的编辑按钮,即可对该文档数据记录进行删除:
图4-3-8:Compass 删除文档数据
MongoDB Compass 在 CRUD 的操作上还是十分的人性化,不过不适合大批量的操作。
4.4
查询文档
在文档记录的 FILTER 行中输入查询条件后,点击 FIND 按钮,即可执行查询操作,还可以导出 Python、Java 等语言的查询语句。
例如,查询户型为3室2厅,且朝向为南的房子,在 FILTER 行输入查询以下条件进行查询:
代码语言:javascript复制{huxing: "3室2厅 ", chaoxiang: " 南 "}
图4-4-1:Compass 查询文档
查询得到 303 条文档数据记录。
导出 Python、Java 等语言的查询语句:
图4-4-2:Compass 导出其他语言的查询语句
可以看到,导出的语句十分完整,直接可以使用。
4.5
创建索引
在集合页面的 Indexes 中,可以查看相对应集合的索引情况,其中索引 "_id_" 是系统中规定的唯一索引,不可删除。
图4-5-1:Compass 查看集合的索引
通过点击 CREATE INDEX 按钮可以创建索引。输入索引名称,并选择建立索引的键、索引顺序,还可以配置索引的类型、属性等:
图4-5-2:Compass 创建索引
若勾选 Create unique index,要确定建立索引的键的键值没有重复值;Partial filter expression 可用于设置索引条件,即索引键符合所设置条件的才会为其建立索引,可用以约束非空值,例如设置以下条件则表示只对 存在键值的 positioninfo 建立索引:
代码语言:javascript复制{ "positioninfo": { "$exists": true } }
Partial indexes 可以减少存储空间的使用,提升性能表现。
4.6
查看执行计划
在 MongoDB shell 中有 explain() 函数,用于检测诊察数据的运行情况。Explain Plan 的功能与其类似,用于查看查询语句的执行计划、评估查询的性能,一般应用在 find() 查询函数、评估索引等。
图4-6-1:Compass 查看查询语句执行计划
可使用树型或原生 JSON 格式查看语句执行顺序、返回结果数、耗时、扫描记录数、使用索引情况等执行信息。
4.7
监控资源使用情况
在首页中点击 Performance 标签页即可监控 MongoDB 资源的使用情况:
图4-7-1:Compass 监控资源使用情况
可查看操作命令、读写 I/O、网络带宽、内存使用、热点集合等资源监控信息。
4.8
使用 Mongo Shell
MongoDB Compass 集成了 MongoDB Shell,点击界面底部的 >_MONGOSH 即可进入,跟在 MongoDB 服务器中使用 mongosh 的用法及效果一致,可直接编写 MongoDB 语句进行数据库操作。
图4-8-1:Compass 中使用 Mongo Shell
MongoDB Compass 还有其他丰富的功能,大家可以下载安装来使用,进行体验、发掘。
封面图片:坦桑尼亚塞伦盖蒂草原上迁徙的斑纹角马
版权信息:© jacobeukman / iStock / Getty Images Plus