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

本文涉及的产品
云数据库 MongoDB,通用型 2核4GB
简介: 在前一篇中,我们介绍的主要是站在开发人员的角度如何使用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
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
相关实践学习
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
相关文章
|
3天前
|
NoSQL 大数据 数据处理
MongoDB聚合框架与复杂查询优化:技术深度解析
【4月更文挑战第30天】本文深入探讨了MongoDB的聚合框架和复杂查询优化技术。聚合框架包含$match、$group、$sort和$project阶段,用于数据处理和分析,提供灵活性和高性能。优化查询涉及创建合适索引、使用聚合框架、简化查询语句、限制返回结果数、避免跨分片查询、只查询所需字段及使用$inc操作符。理解这些技术有助于提升MongoDB在大数据和复杂查询场景下的性能。
|
3天前
|
NoSQL 数据挖掘 BI
【MongoDB】MongoDB 聚合框架
【4月更文挑战第3天】【MongoDB】MongoDB 聚合框架
|
3天前
|
存储 NoSQL 关系型数据库
一篇文章带你搞懂非关系型数据库MongoDB
一篇文章带你搞懂非关系型数据库MongoDB
71 0
|
3天前
|
NoSQL MongoDB Docker
百度搜索:蓝易云【Scrapy框架之Docker安装MongoDB教程。】
现在,你已经成功在Scrapy框架中使用Docker安装并配置了MongoDB。你可以在Scrapy爬虫中使用MongoDB进行数据存储和处理。
221 0
|
7月前
|
NoSQL MongoDB 流计算
由于Flink MongoDB CDC模块的一些已知问题导致的
由于Flink MongoDB CDC模块的一些已知问题导致的
41 1
|
存储 缓存 NoSQL
分布式服务器框架之Servers.Core中 实现Log模块设计 写入MongoDB数据库
游戏服务器中都需要用到Log模块,log模块存在的意义第一个是将log输出到控制台又或者是写入到log文件中,出了BUG方便定位;第二是常用于将用户的数据(例如玩家登录、道具购买量)将这种log统计到数据库中,方便统计用户留存信息、数据分析等。
|
NoSQL MongoDB 数据库
分布式服务器框架之Server.Core库中实现YFUniqueEntity、YFUniqueIDBase 管理MongoDB 自定义Id的自增
YFUniqueEntity是数据库中的结构,GetUniqueID函数中会根据Type和自增步长去数据库中寻找该类型的当前ID是多少,然后会用当前的Id去加上步长,把更新后的新ID插入到MongoDB中记录着ID的那张表里。
|
NoSQL MongoDB
分布式服务器框架之Servers.Core库中实现 MongoEntityBase 实现阻塞 异步对MongoDB的增删改查
YFMongoDBModelBase类是个模板类,对模板参数进行了约束YFMongoEntityBase,必须要继承YFMongoEntityBase
|
JSON NoSQL MongoDB
分布式服务器框架之Servers.Core库中实现MongoDB的ObjectId和Json转换
分布式服务器框架之Servers.Core库中实现MongoDB的ObjectId和Json转换
|
SQL NoSQL MongoDB
分布式服务器框架之Servers.Core库中实现MongoDB对象实体类 管理对象ID
MongoDB中的ID是一个hash码,和传统的关系数据库相比MongoDB没有办法实现ID的自增,如果需要ID自增的话,所以要自己管理ID,并且把对应类型的ID写入到一个专门的Collection(其实就是Sql中的Table)里面去,每次创建新对象的时候,都要取到该类型当前的ID,然后在这个基础上+1,比如当前是角色的ID是1,又创建了一个新的角色,要在原来的基础上+1 ID=2。今天先把MongoDB的对象实体基类实现了。