Adhesive框架系列文章--Mongodb数据服务模块使用(下)

简介: 在前一篇中,我们介绍的主要是站在开发人员的角度如何使用Mongodb数据服务来保存数据,这一篇会介绍在保存数据之后,如何去查看数据,也就是怎么样去使用Mongodb数据服务的通用后台。 Mongodb数据服务的后台是采用Silverlight4制作的。

在前一篇中,我们介绍的主要是站在开发人员的角度如何使用Mongodb数据服务来保存数据,这一篇会介绍在保存数据之后,如何去查看数据,也就是怎么样去使用Mongodb数据服务的通用后台。

Mongodb数据服务的后台是采用Silverlight4制作的。进入后台,第一件事情是登录系统:

image

这个配置是通过配置服务进行的,来看一下Mongodb数据服务的配置部分中的管理员配置(至于其它配置会在实现篇中介绍,因为其中涉及到了Mongodb数据服务的实现细节):

image

在这里我们定义了三个用户,进入aa这个用户看一下:

image

这里除了定义登录用户名、密码之外还定义了管理的数据库:

image

在这里,通过我们限制aa这个用户只能对以Aic开头的数据库有权限,来看看他可以管理的表:

image

*代表所有表,也就是aa这个用户只能在后台看到Aic相关的数据库,但是可以看到所有这个分类下的所有数据库和表。

如果希望某个用户只能看Test这个表而不限制数据库或分类的话,可以配置数据库前缀为*而表名为Test。

需要注意,数据库和表都是字典项,完全可以配置多个。

 

在点击了登录按钮之后,进入主界面,下面是全貌:

image

系统分为两个部分DASHBOARD就是查看数据的入口,而MENAGEMENT是管理数据的入口。

在DASHBOARD页面上有几个区域

1、首先是选择要查询的数据:先选择分类之后会出现数据库,然后选择数据库后会出现数据库下的表。在这里系统对按月分库概念透明,只要有任意一个月份中有数据都会显示出来,选择后的样子如下图:

image

2、然后是选择要查询的时间段:这里可以通过直接选择时间跨度自动生成时间,也可以使用时间选择和日期选择空间输入时间和日期,也可以直接手动输入。对于自动生成时间的话,默认给出了一些跨度:

image

选择了一个跨度之后,时间段的间隔就会是这个跨度,默认情况下会生成最新1小时或是1天的时间段,也可以点击向前或者向后按钮来调节这个时间段。点击当前则还是回到最新的时间段。

3、第三步的高级数据筛选是可选步骤,在选择了数据库、表和时间段之后,可以要求系统加载相应的一些过滤筛选控件,比如:

image

要注意的是,只有进行了第一步和第二步才能展开高级数据筛选,因为其下拉框或多选框中的数据项是基于这个时间段这个数据库中真实的数据生成的。

4、现在就可以选择需要查看的视图了,下面分别来看一下每一种视图的功能。

 

1)首先是列表视图:

image

每一个视图都会以模态对话框的形式展现。关闭对话框回到DASHBOARD页面。在这里,可以看到,由于我们选择了查看3个表的数据,所以在这里列出了三个Tab来展现各自的数据。在一般情况下,我们仅仅会选择一个关心的表(因为往往数据按照应用程序或业务类型分表)。

- 可以根据屏幕大小和喜好,修改每页显示的记录数,然后点击刷新按钮重置。点击刷新后,这个选项将会记住。

- 点击上下分页控件的相关按钮可以切换分页,这只会切换当前Tab的分页,其它表的分页还会保持原来的。

- 可以点击行后点击查看详细按钮查看详细记录,也就是进入详细视图。

- 可以点击查看分组统计视图直接进入分组统计视图,因为我们往往会在查看了列表数据的时候,通过这个视图来查看查看一些数据的分组统计。

 

2)详细视图的界面如下:

image

点击展开所有则可以直接完整打开树。点击展开一级可以展开一级树,点击收缩一级可以收缩一级树。

 

3)数据量统计视图的界面如下:

image

在打开这个视图的时候,会根据时间跨度计算粒度,也就是图表上一个点的时间跨度,把整个图表的点控制在100个左右。然后会抓取每一个粒度时间段中的记录数,以折线图形式显示在图表上。当然,如果你觉得这个默认的粒度不可以,也可以修改粒度后点击刷新按钮。这个视图往往针对监控,监控数据量是否有异常,因此可以点击开启自动刷新按钮来定时自动刷新界面,刷新的时间间隔取决于粒度。一般而言,如果粒度是1分钟以下的话,这个功能比较有用,对于更大的粒度,往往只是查看一次就好了。对于图表上的每一个点都可以点击,点击后直接进入列表视图。也就是查看这个粒度时间段中,对于点击的表以列表方式查看所有数据。

 

4)分组统计视图界面如下:

image

在这个视图中,它找到表所有单选方式和多选方式过滤的列,然后以饼图形式列出所有列值的分组统计,这样,我们就很容易发现哪些数据是量最多的。这对于监控数据、统计数据来说非常有用。之所以只考虑MongodbFilterOption为CheckBoxListFilter或DropDownListFilter的列,是因为可以想象它们的值是有限多的,如果是无限多的话,那么应该使用TextBoxFilter。因此,在选择MongodbFilterOption的时候要考虑并选择合适的搜索方式。

 

5)状态视图暂时还没有实现,这里略过。

 

注意到,DASHBOARD页面底部还有一栏:

image

在这里有两种其它查找数据的方式

1、在选择了分类和数据库之后,可以直接输入主键来查询详细的数据:

image

这是因为,在很多时候,我们通过某种方式知道了某个记录的主键,比如错误页面报错,给出了一个错误ID。此时,我们知道这是一个Aic分类中的日志数据,但是无法确定是哪个表的,此时可以直接查询详细视图,无需通过列表视图进入:

image

2、不需要任何选择,可以直接根据上下文ID来查看到所有关联的数据,比如:

image

在这个列表视图中找到第一条记录的上下文标识,然后查询其它关联数据:

image

image

查找到了八种关联的数据,只不过在这里不能修改分页记录数也不能查看分组统计。

 

除了DASHBOARD页面还有MANAGEMENT页面,在这里我们可以看到整个数据集群的状态:

image最高层次是服务器集群,一个服务器集群至少有一台服务器,当然也可以配置主从分离,这个在配置后台可以看到:

image

点击服务器集群的名字,可以在右边看到统计信息和下属所有数据库组的信息。之所以称作数据库组是因为我们按照日期分库,一个数据库组可以有多个数据库。

点击一个数据库组的名字可以看到有关这个数据库的元数据详细信息:

image

展开数据库组,可以看到下面列出了每一个数据库。在这里我们的Aic__Log这个数据库组具有两个数据库,分别是2011年9月的和2011年10月的,要看到它的具体信息,可以点击:

image

在具体的数据库下,还可以展开查看每一个表的信息,在表下还可以展开查看查看表上建立的索引。

这里就不给出更多截图了。需要理解的是一个概念,在这个管理视图中其实查看的是两种数据:

1、元数据:元数据和和分库没关系,它对于一个数据库组来说是固定的,点击服务器集群和数据库组看到列表都是元数据。元数据是死的。

2、状态数据:状态数据反映的是实际数据库的状态,基本信息中的数据以及点击数据库节点看到的表信息都是状态数据,状态数据和实际数据库中的信息一致,比如201009年的日志信息数据库中可以包含两个表,而201010的日志信息数据库可以包含三个表。当然,表下面列出的索引也是状态数据。状态数据是活的。

 

至此,我们把这个Mongodb数据后台的大致使用介绍完了,可以发现它的功能强大,可查可管。并且多种视图可以满足不同数据的查看需要:

1、列表视图+详细数据:适用于日志数据

2、统计视图:适用于统计数据和业务量数据

3、分组统计视图:适用于统计数据和监控数据的分析

4、状态视图:适用于状态数据

作者: lovecindywang
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
相关文章
|
存储 NoSQL MongoDB
【赵渝强老师】MongoDB写入数据的过程
在MongoDB数据更新时,WiredTiger存储引擎通过预写日志(Journal)机制先将更新写入日志文件,再通过检查点操作将日志中的操作刷新到数据文件,确保数据持久化和一致性。检查点定期创建,缩短恢复时间,并保证异常终止后可从上一个有效检查点恢复数据。视频讲解及图示详细说明了这一过程。
356 23
【赵渝强老师】MongoDB写入数据的过程
|
NoSQL MongoDB 微服务
微服务——MongoDB实战演练——文章评论的基本增删改查
本节介绍了文章评论的基本增删改查功能实现。首先,在`cn.itcast.article.dao`包下创建数据访问接口`CommentRepository`,继承`MongoRepository`以支持MongoDB操作。接着,在`cn.itcast.article.service`包下创建业务逻辑类`CommentService`,通过注入`CommentRepository`实现保存、更新、删除及查询评论的功能。最后,新建Junit测试类`CommentServiceTest`,对保存和查询功能进行测试,并展示测试结果截图,验证功能的正确性。
285 2
|
NoSQL Java MongoDB
微服务——MongoDB实战演练——文章评论实体类的编写
本节主要介绍文章评论实体类的编写,创建了包`cn.itcast.article.po`用于存放实体类。具体实现中,`Comment`类通过`@Document`注解映射到MongoDB的`comment`集合,包含主键、内容、发布时间、用户ID、昵称等属性,并通过`@Indexed`和`@CompoundIndex`注解添加单字段及复合索引,以提升查询效率。同时提供了Mongo命令示例,便于理解和操作。
224 2
|
NoSQL 测试技术 MongoDB
微服务——MongoDB实战演练——根据上级ID查询文章评论的分页列表
本节介绍如何根据上级ID查询文章评论的分页列表,主要包括以下内容:(1)在CommentRepository中新增`findByParentid`方法,用于按父ID查询子评论分页列表;(2)在CommentService中新增`findCommentListPageByParentid`方法,封装分页逻辑;(3)提供JUnit测试用例,验证功能正确性;(4)使用Compass插入测试数据并执行测试,展示查询结果。通过这些步骤,实现对评论的高效分页查询。
219 0
|
NoSQL MongoDB 微服务
微服务——MongoDB实战演练——文章微服务模块搭建
本节介绍文章微服务模块的搭建过程,主要包括以下步骤:(1)创建项目工程 *article*,并在 *pom.xml* 中引入依赖;(2)配置 *application.yml* 文件;(3)创建启动类 *cn.itcast.article.ArticleApplication*;(4)启动项目,确保控制台无错误提示。通过以上步骤,完成文章微服务模块的基础构建与验证。
185 0
|
存储 NoSQL MongoDB
数据的存储--MongoDB文档存储(二)
数据的存储--MongoDB文档存储(二)
354 2
|
NoSQL MongoDB 数据库
使用 docker 快速搭建开发环境的 mongodb 服务
本指南介绍如何使用 Docker 和 Docker Compose 部署 MongoDB 和 Mongo Express。首先,通过 Docker 命令分别启动 MongoDB(镜像 `mongo:7.0.14`)和 Mongo Express(镜像 `mongo-express:1.0.2-20-alpine3.19`),并配置环境变量确保两者能正确连接。接着,提供了一个 `docker-compose.yaml` 文件示例,包含 MongoDB 数据卷、健康检查及服务依赖配置,简化多容器管理。
2169 2
|
存储 JSON NoSQL
微服务——MongoDB的数据模型
MongoDB采用文档(document)作为最小存储单位,类似关系型数据库中的行,使用BSON(Binary-JSON)格式存储数据。BSON是JSON的二进制扩展,支持内嵌文档和数组,新增了如Date、BinData等特殊数据类型,具有轻量、高效、可遍历的特点,适合非结构化与结构化数据存储。其灵活性高,但空间利用率略低。BSON数据类型包括string、integer、boolean等基本类型及date、object id等扩展类型。
349 0
|
存储 NoSQL MongoDB
基于阿里云数据库MongoDB版,微财数科“又快又稳”服务超7000万客户
选择MongoDB主要基于其灵活的数据模型、高性能、高可用性、可扩展性、安全性和强大的分析能力。
|
NoSQL MongoDB 数据库
使用NimoShake将数据从AWS DynamoDB迁移至阿里云MongoDB
使用NimoShake将数据从AWS DynamoDB迁移至阿里云MongoDB

推荐镜像

更多