基于MongoDB的数据查询方法及系统、服务终端、存储器与流程

文档序号:11199297阅读:346来源:国知局
基于MongoDB的数据查询方法及系统、服务终端、存储器与流程

本发明属于数据存储技术领域,尤其涉及一种基于mongodb的数据查询方法及系统、服务终端、存储器。



背景技术:

mongodb是一个基于分布式文件存储的数据库,旨在为web应用提供可扩展的高性能数据存储解决方案,mongodb是一个介于关系数据库和非关系数据库之间的产品,在非关系数据库当中功能很丰富、非常类似关系数据库的数据库。他支持的数据结构非常松散,是类似json的bjson格式,因此可以存储比较复杂的数据类型。mongodb支持的查询语言非常强大,其语法类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引,因此mongodb作为分布式文件存储的数据库得到了广泛应用。

在企业运作的过程中,通常需要对各类产品、物料、设备等进行多样性的性能测试,以保证产品的质量。由于测试的侧重点和性能不同,需要多种多样的测试站和测试项给予测试支持,而测试数据的存储、查询和解析带来很大的挑战。

传统的测试数据存储管理方式大体有两种,一种是将测试数据以文件的形式存储在服务器硬盘中,并通过关系数据库的表进行路径管理,当查询的时候,先经过数据库表获得产品的测试文件路径,然后在磁盘指定位置解析各个测试文件,并进行其他分析。

另一种是设计通用的关系型数据库表结构,通过多个表的联合存储实现多测试工站多测试项的存储,虽然极大的解决了存储和解析的性能。但仍需要对特定格式的测试数据逐一解析到表里,查询解析的时候,也需将表里的测试数据还原回原始的状态,性能仍然不是很理想。这种数据库表结构太依赖于具体业务,当业务有变动时,可能需要对表的字段,甚至整个表结构体系做修改。

以报表为例,现有的技术中,针对每一种报表分别建议对应的模型类,不同的数据库查询类,以满足不同的查询需求,在不同查询需求之间,由于查询语句不通用,返回的数据模型不一致而无法实现通用目的,而对于传统的关系数据库,所有数据查询都需要以sql(structuredquerylanguage,结构化查询语言)形式固定下来,缺乏灵活性,降低查询效率。



技术实现要素:

本发明实施例提供了一种基于mongodb的数据查询方法及系统、服务终端、存储器,旨在解决现有技术中针对不同的查询需求需要重新编码降低查询效率的问题。

本发明实施例是这样实现的,一种基于mongodb的数据查询方法,包括:

接收数据查询指示,并获取查询参数;

基于所述查询参数从数据字典中获得需要查询数据的结构;

基于所述查询参数及所述结构组装查询语句;

调用所述查询语句从数据库中获取与所述查询指示对应的原始数据。

优选地,所述接收数据查询指示,并获取查询参数之后、所述基于所述查询参数从数据字典中获得需要查询数据的结构之前还包括:

基于所述查询参数获取需要查询的数据的参数,所述数据的参数包括目标表名。

优选地,所述基于所述查询参数从数据字典中获得需要查询数据的结构具体为:

基于所述目标表名从所述数据字典中获取对应的数据结构。

优选地,所述基于所述查询参数及所述结构组装查询语句具体为:

基于所述查询参数及所获取的数据结构组装查询语句。

优选地,所述查询语句为bson查询语句,所述调用所述查询语句从数据库中获取与所述查询指示对应的原始数据具体为:

调用所述bson查询语句从所述数据库中查询并获取与所述目标表名对应的原始表结构。

优选地,所述数据的参数还包括期望结构参数,所述调用所述查询语句从数据库中获取与所述查询指示对应的原始数据之后还包括:

基于所述期望结构参数及所述原始表结构组装形成期望数据结构。

优选地,所述基于所述期望结构参数及所述原始表结构组装形成期望数据结构之后还包括:

存储所述期望数据结构,并反馈所述期望数据结构。

本发明还提供一种基于mongodb的数据查询系统,包括:

参数获取模块,用于接收数据查询指示,并获取查询参数;

结构获取模块,用于基于所述查询参数从数据字典中获得需要查询数据的结构;

组装模块,用于基于所述查询参数及所述结构组装查询语句;

数据获取模块,用于调用所述查询语句从数据库中获取与所述查询指示对应的原始数据。

本发明还提供一种存储器,所述存储器存储有计算机程序,所述计算机程序被处理器执行如下步骤:

接收数据查询指示,并获取查询参数;

基于所述查询参数从数据字典中获得需要查询数据的结构;

基于所述查询参数及所述结构组装查询语句;

调用所述查询语句从数据库中获取与所述查询指示对应的原始数据。

本发明还提供一种服务终端,包括存储器、处理器及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:

接收数据查询指示,并获取查询参数;

基于所述查询参数从数据字典中获得需要查询数据的结构;

基于所述查询参数及所述结构组装查询语句;

调用所述查询语句从数据库中获取与所述查询指示对应的原始数据。

在本发明实施例中,需要查询数据时,根据查询参数动态组装查询语句,获得对应的数据,无需为每一次查询进行独立编码,提高查询效率。

附图说明

图1是本发明第一实施例提供的一种基于mongodb的数据查询方法的一优选方案的流程图;

图2是本发明第一实施例提供的一种基于mongodb的数据查询方法的另一优选方案的流程图;

图3是本发明第二实施例提供的一种基于mongodb的数据查询系统的一优选方案的结构图;

图4是本发明第二实施例提供的一种基于mongodb的数据查询系统的另一优选方案的结构图;

图5是本发明第三实施例提供的一种服务终端的结构图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明实施例中,一种基于mongodb的数据查询方法,包括:接收数据查询指示,并获取查询参数;基于所述查询参数从数据字典中获得需要查询数据的结构;基于所述查询参数及所述结构组装查询语句;调用所述查询语句从数据库中获取与所述查询指示对应的原始数据。

为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。

实施例一:

图1示出了本发明第一实施例提供的一种基于mongodb的数据查询方法的一优选方案的的流程图,包括:

步骤s1、接收数据查询指示,并获取查询参数;

具体地,当用户需要查询数据时,从查询接口(例如api接口)中输入查询指示,该查询指示可包括查询参数,该查询参数可包括需要查询的数据表、数据表名称、期望的数据表的结构等,还可包括查询参数的识别码(如id)等,此处对此不作限制。

步骤s2,基于查询参数从数据字典中获得需要查询数据的结构;

具体地,预先设置一个数据字典,该数据字典存储有所有待查询表的数据结构,该数据结构可以任一形式存在,例如表格、列表等,本实施例中,优选为表-字段的形式存在,其中,所述表即为需要查询的表,所述字段即为所述表包括的字段,根据该查询参数从该数据字典中获取到需要查询的数据的结构。

步骤s3,基于查询参数及结构组装查询语句;

具体地,根据该查询参数及所获取的需要查询的数据的结构组装查询语句,进一步地,基于上述目标表名及所获取的数据结构来组装查询语句。优选地,该查询语句为bson查询语句。

步骤s4,调用查询语句从数据库中获取与查询指示对应的原始数据。

具体地,组装该查询语句后,调用该查询语句从数据库中查询并获取对应的原始数据,该数据库存储有所有需要查询的原始数据(表)等。

在本实施例的一个优选方案中,步骤s1之后、步骤s2之前还可包括:

步骤s0,基于查询参数获取需要查询的数据的参数;

具体地,利用查询解析器从查询参数中获取需要查询的数据的参数,例如目标表的名称、期望结构参数等。

在本实施例的一个优选方案中,该步骤s2具体为:根据查询参数中的目标表名获取对应的数据结构,该数据结构为对应的目标表的原始数据结构。

在本实施例的一个优选方案中,该步骤s3具体为:调用bson查询语句从数据库中查询请求与目标表名对应的原始表结构,并获取对应的原始表结构。

在本实施例的一个优选方案中,该数据的参数还包括期望结构参数,该步骤s4之后还可包括:

步骤s5,基于期望结构参数及原始表结构组装形成期望数据结构;

具体地,将该期望结构参数及原始表结构进行对比分析,当二者有差异时,基于该期望结构参数对该原始表结构进行组装,形成期望数据结构。

在本实施例的一个优选方案中,该步骤s5之后还可包括(见图2):

步骤s6,存储期望数据结构,并反馈与期望数据结构。

具体地,当组装形成期望数据结构后,存储该期望数据结构(例如期望表结构),并向用户反馈该期望数据结构,优选地,以识别码的方式向用户反馈对应的期望数据结构,用户可根据该识别码来获取期望数据结构。

在本实施例中,预设一个期望结构数据库,可通过识别码来获取对应的期望数据结构,无需在查询参数中包括详细的数据结构的相关参数,可减少网络负担。

本实施例中,需要查询数据时,根据查询参数动态组装查询语句,获得对应的数据,无需为每一次查询进行独立编码,提高查询效率,减轻服务器负担。

此外,根据查询参数动态组装查询语句,而每一个查询参数均不同,无需按照固定模式绑定参数,灵活性强,贴近用户实际需求。

再者,根据需求对查询的数据结构进行处理,输出期望的数据结构,实现过程简单,给用户带来便利。

实施例二:

图3示出了本发明第二实施例提供的一种基于mongodb的数据查询系统的一优选方案的结构图,该系统包括:参数获取模块1、与参数获取模块1连接的结构获取模块2、与结构获取模块2连接的语句组装模块3、与语句组装模块3连接的数据获取模块4,其中:

参数获取模块1,用于接收数据查询指示,并获取查询参数;

具体地,当用户需要查询数据时,从查询接口(例如api接口)中输入查询指示,该查询指示可包括查询参数,该查询参数可包括需要查询的数据表、数据表名称、期望的数据表的结构等,还可包括查询参数的识别码(如id)等,此处对此不作限制。

结构获取模块2,用于基于查询参数从数据字典中获得需要查询数据的结构;

具体地,预先设置一个数据字典,该数据字典存储有所有待查询表的数据结构,该数据结构可以任一形式存在,例如表格、列表等,本实施例中,优选为表-字段的形式存在,其中,所述表即为需要查询的表,所述字段即为所述表包括的字段,根据该查询参数从该数据字典中获取到需要查询的数据的结构。

语句组装模块3,用于基于查询参数及结构组装查询语句;

具体地,根据该查询参数及所获取的需要查询的数据的结构组装查询语句,进一步地,基于上述目标表名及所获取的数据结构来组装查询语句。优选地,该查询语句为bson查询语句。

数据获取模块4,用于调用查询语句从数据库中获取与查询指示对应的原始数据。

具体地,组装该查询语句后,调用该查询语句从数据库中查询并获取对应的原始数据,该数据库存储有所有需要查询的原始数据(表)等。

在本实施例的一个优选方案中,该系统还可包括:与参数获取模块1及结构获取模块2均连接的查询模块5,其中:

查询模块5,用于基于查询参数获取需要查询的数据的参数;

具体地,利用查询解析器从查询参数中获取需要查询的数据的参数,例如目标表的名称、期望结构参数等。

在本实施例的一个优选方案中,该结构获取模块2具体用于根据查询参数中的目标表名获取对应的数据结构,该数据结构为对应的目标表的原始数据结构。

在本实施例的一个优选方案中,该组装模块3具体用于调用bson查询语句从数据库中查询请求与目标表名对应的原始表结构,并获取对应的原始表结构。

在本实施例的一个优选方案中,该系统还可包括:与数据获取模块4连接的结构组装模块6,其中:

结构组装模块6,用于基于期望结构参数及原始表结构组装形成期望数据结构;

具体地,将该期望结构参数及原始表结构进行对比分析,当二者有差异时,基于该期望结构参数对该原始表结构进行组装,形成期望数据结构。

在本实施例的一个优选方案中(见图4),该系统还可包括:与结构组装模块6连接的反馈模块7,其中:

反馈模块7,用于存储期望数据结构,并反馈与期望数据结构的识别码。

具体地,当组装形成期望数据结构后,存储该期望数据结构(例如期望表结构),并向用户反馈该期望数据结构,优选地,以识别码的方式向用户反馈对应的期望数据结构,用户可根据该识别码来获取期望数据结构。在本实施例中,预设一个期望结构数据库,可通过识别码来获取对应的期望数据结构,无需在查询参数中包括详细的数据结构的相关参数,可减少网络负担。

本实施例中,需要查询数据时,根据查询参数动态组装查询语句,获得对应的数据,无需为每一次查询进行独立编码,提高查询效率,减轻服务器负担。

此外,根据查询参数动态组装查询语句,而每一个查询参数均不同,无需按照固定模式绑定参数,灵活性强,贴近用户实际需求。

再者,根据需求对查询的数据结构进行处理,输出期望的数据结构,实现过程简单,给用户带来便利。

实施例三:

图5示出了本发明第三实施例提供的一种服务终端的结构图,该处服务终端包括:存储器(memory)51、处理器(processor)52、通信接口(communicationsinterface)53和总线54,该处理器52、存储器51、通信接口53通过总线54完成相互之间的交互通信。

存储器51,用于存储各种数据;

具体地,存储器51用于存储各种数据,例如通信过程中的数据、接收的数据等,此处对此不作限制,该存储器还包括有多个计算机程序。

通信接口53,用于该服务终端的通信设备之间的信息传输;

处理器52,用于调用存储器51中的各种计算机程序,以执行上述实施例一所提供的一种基于mongodb的数据查询方法,例如:

接收数据查询指示,并获取查询参数;

基于所述查询参数从数据字典中获得需要查询数据的结构;

基于所述查询参数及所述结构组装查询语句;

调用所述查询语句从数据库中获取与所述查询指示对应的原始数据。

进一步地,还可执行下述步骤:

基于所述查询参数获取需要查询的数据的参数,所述数据的参数包括目标表名。

基于所述期望结构参数及所述原始表结构组装形成期望数据结构。

存储所述期望数据结构,并反馈所述期望数据结构。

本实施例中,需要查询数据时,根据查询参数动态组装查询语句,获得对应的数据,无需为每一次查询进行独立编码,提高查询效率,减轻服务器负担。

此外,根据查询参数动态组装查询语句,而每一个查询参数均不同,无需按照固定模式绑定参数,灵活性强,贴近用户实际需求。

再者,根据需求对查询的数据结构进行处理,输出期望的数据结构,实现过程简单,给用户带来便利。

本发明还提供一种存储器,该存储器存储有多个计算机程序,该多个计算机程序被处理器调用执行上述实施例一所述的一种基于mongodb的数据查询方法。

本发明中,需要查询数据时,根据查询参数动态组装查询语句,获得对应的数据,无需为每一次查询进行独立编码,提高查询效率,减轻服务器负担。

此外,根据查询参数动态组装查询语句,而每一个查询参数均不同,无需按照固定模式绑定参数,灵活性强,贴近用户实际需求。

再者,根据需求对查询的数据结构进行处理,输出期望的数据结构,实现过程简单,给用户带来便利。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。

专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1