一种基于SQL操作MongoDB数据库的方法技术

技术编号:38903950 阅读:12 留言:0更新日期:2023-09-22 14:22
本发明专利技术涉及数据库应用领域,公开了一种基于SQL操作MongoDB数据库的方法,包括:根据资源的请求路径获得目标资源的地址以及附加参数信息,基于目标资源的地址判断目标资源是否存在且有权访问,在目标资源存在且有权访问时,基于附加参数信息构建SQL查询语句,根据SQL查询语句获得查询对象和操作参数,根据查询对象和操作参数生成业务处理器,业务处理器在MongoDB数据库上执行操作,并将执行结果转换为JSON对象返回。MongoDB的操作语法不是标准的SQL语法,本发明专利技术提供的驱动系统,可以使用标准SQL对MongoDB进行开发,尤其是在一套系统中涉及多种数据库的情况下,可以做到将MongoDB和其它数据库进行统一开发管理,能降低开发成本,提高开发效率。提高开发效率。提高开发效率。

【技术实现步骤摘要】
一种基于SQL操作MongoDB数据库的方法


[0001]本专利技术涉及数据库应用领域,尤其涉及一种基于SQL操作MongoDB数据库的方法。

技术介绍

[0002]当前在大数据时代背景下,各行各业数据量巨大,对于大量多源异构数据的存储,会针对性的使用不同的数据库,在数据系统开发时,常常涉及到同时对多个数据库的开发,如果数据库之间的操作语法各不相同,则开发成本和开发效率会显著提高。MongoDB是一种具有高性能、高度伸缩性的非关系型数据库,适合存储大数据量及实时读写,是常用的数据库之一。但是,它的操作语法不是标准的SQL语法,当需要同时对MongoDB和其它使用标准SQL语法的数据库进行开发时,需要开发两套代码,大大降低了开发效率;同时,在行业内也没有相应的稳定驱动可供使用。
[0003]针对上述问题,亟需一种按标准SQL语法操作MongoDB数据库的驱动系统,来提高MongoDB开发效率。

技术实现思路

[0004]本专利技术的目的在于克服上述一种或多种现有的技术问题,提供一种基于SQL操作MongoDB数据库的方法。
[0005]为实现上述目的,本专利技术提供的一种基于SQL操作MongoDB数据库的方法,包括:
[0006]根据资源的请求路径获得目标资源的地址以及附加参数信息;
[0007]基于目标资源的地址判断目标资源是否存在且有权访问;
[0008]在目标资源存在且有权访问时,基于附加参数信息构建SQL查询语句;
[0009]根据SQL查询语句获得查询对象和操作参数;
[0010]根据查询对象和操作参数生成业务处理器;
[0011]业务处理器在MongoDB数据库上执行操作,并将执行结果转换为JSON对象返回。
[0012]根据本专利技术的一个方面,根据资源的请求路径获得目标资源的地址以及附加参数信息包括:
[0013]获取请求中包含的目标地址,在目标地址为空或者请求的资源不属于目标数据库时,返回错误信息;
[0014]在目标地址不为空且请求的资源属于目标数据库时,对目标地址外的其他参数进行解析,获得附加参数信息。
[0015]根据本专利技术的一个方面,基于目标资源的地址判断目标资源是否存在且有权访问具体包括:
[0016]获取目标资源对应的MongoDB数据库,根据附加参数信息中的用户信息获得用户的权限,根据附加参数中的操作参数获得用户是否对目标具有操作权限;
[0017]在用户有权访问数据库时,为资源请求操作配置访问账户。
[0018]根据本专利技术的一个方面,目标资源存在且有权访问时,基于附加参数信息构建SQL
查询语句具体包括:
[0019]基于附加参数中的操作生成对应操作的空白SQL,通过资源映射将附加参数信息内的目标资源转换为SQL语句中的数据库和表,根据访问资源的类别生成SQL中的字段。
[0020]根据本专利技术的一个方面,根据SQL查询语句获得查询对象包括:
[0021]对SQL语句进行转换,获得转换后的查询对象,基于附加参数信息对因类型转换引起的查询对象的赋值错误进行修正,获得查询对象。
[0022]根据本专利技术的一个方面,根据查询对象生成业务处理器具体包括:
[0023]根据生成的查询对象生成MongoDB的查询语句或者基于MongoDB操作API生成可执行的代码。
[0024]根据本专利技术的一个方面,业务处理器执行操作,并将执行结果转换为JSON对象返回具体包括:
[0025]在业务处理器执行选择操作时,根据返回的结果按照参数指定的排序生成JSON;
[0026]在业务处理器执行删除操作时,根据删除操作所涉及文档的数目生成结果JSON;
[0027]在业务处理器执行更新操作时,根据更新操作所涉及文档的数目生成结果JSON;
[0028]在业务处理器执行插入操作时,根据插入操作所涉及文档的数目生成结果JSON;
[0029]在业务处理器捕获异常时,根据异常操作所涉及的操作参数生成结果JSON。
[0030]根据本专利技术的一个方面,业务处理器执行操作,并将执行结果转换为JSON对象返回具体包括:
[0031]在业务处理器执行选择操作时,根据返回的结果转换为结果集,将结果集按照参数指定的排序生成JSON;
[0032]在业务处理器执行更新操作时,根据更新操作所涉及文档的数目生成结果JSON;
[0033]在业务处理器执行插入操作时,根据插入操作所涉及文档的数目生成结果JSON;
[0034]在业务处理器捕获异常时,根据异常操作所涉及的操作参数生成结果JSON。
[0035]为实现上述目的,本专利技术提供一种基于SQL操作MongoDB数据库的装置,包括:
[0036]请求分析单元,用于根据资源的请求路径获得目标资源的地址以及附加参数信息,以及基于用户基于目标资源的地址判断目标资源是否存在且有权访问;
[0037]SQL语句构建单元,用于在目标资源存在且有权访问时,基于附加参数信息构建SQL查询语句;
[0038]业务处理器生成单元,根据SQL查询语句获得查询对象和操作参数,以及根据查询对象和操作参数生成业务处理器;
[0039]执行反馈单元,用于根据业务处理器执行操作,并将执行结果转换为JSON对象返回。
[0040]基于此,本专利技术的有益效果在于:
[0041]MongoDB的操作语法不是标准的SQL语法,本专利技术提供的驱动系统,可以使用标准SQL对MongoDB进行开发,尤其是在一套系统中涉及多种数据库的情况下,可以做到将MongoDB和其它数据库进行统一开发管理,能降低开发成本,提高开发效率。
附图说明
[0042]图1是本专利技术一种基于SQL操作MongoDB数据库的方法的流程图;
[0043]图2是本专利技术实施例的一种按标准SQL语法操作MongoDB数据库的驱动系统的结构示意图。
具体实施方式
[0044]现在将参照示例性实施例来论述本专利技术的内容,应当理解,论述的实施例仅是为了使得本领域普通技术人员能够更好地理解且因此实现本专利技术的内容,而不是暗示对本专利技术的范围的任何限制。
[0045]如本文中所使用的,术语“包括”及其变体要被解读为意味着“包括但不限于”的开放式术语。术语“基于”要被解读为“至少部分地基于”,术语“一个实施例”和“一种实施例”要被解读为“至少一个实施例”。
[0046]请参考图1,其示出了一种基于SQL操作MongoDB数据库的方法,包括:
[0047]根据资源的请求路径获得目标资源的地址以及附加参数信息;
[0048]基于目标资源的地址判断目标资源是否存在且有权访问;
[0049]在目标资源存在且有权访问时,基于附加参数信息构建SQL查询语句;
[0050]根据SQL查询语句获得查询对象和操作参数;
[0051]根据查询本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于SQL操作MongoDB数据库的方法,其特征在于,包括:根据资源的请求路径获得目标资源的地址以及附加参数信息;基于目标资源的地址判断目标资源是否存在且有权访问;在目标资源存在且有权访问时,基于附加参数信息构建SQL查询语句;根据SQL查询语句获得查询对象和操作参数;根据查询对象和操作参数生成业务处理器;业务处理器在MongoDB数据库上执行操作,并将执行结果转换为JSON对象返回。2.如权利要求1所述的一种基于SQL操作MongoDB数据库的方法,其特征在于,根据资源的请求路径获得目标资源的地址以及附加参数信息包括:获取请求中包含的目标地址,在目标地址为空或者请求的资源不属于目标数据库时,返回错误信息;在目标地址不为空且请求的资源属于目标数据库时,对目标地址外的其他参数进行解析,获得附加参数信息。3.如权利要求1所述的一种基于SQL操作MongoDB数据库的方法,其特征在于,基于目标资源的地址判断目标资源是否存在且有权访问具体包括:获取目标资源对应的MongoDB数据库,根据附加参数信息中的用户信息获得用户的权限,根据附加参数中的操作参数获得用户是否对目标具有操作权限;在用户有权访问数据库时,为资源请求操作配置访问账户。4.如权利要求1所述的一种基于SQL操作MongoDB数据库的方法,其特征在于,目标资源存在且有权访问时,基于附加参数信息构建SQL查询语句具体包括:基于附加参数中的操作生成对应操作的空白SQL,通过资源映射将附加参数信息内的目标资源转换为SQL语句中的数据库和表,根据访问资源的类别生成SQL中的字段。5.如权利要求1所述的一种基于SQL操作MongoDB数据库的方法,其特征在于,根据SQL查询语句获得查询对象包括:对SQL语句进行转换,获得转换后的查询对象,基于附加参数信息对因类型转换引起的查询对象的赋值错误进行修正,获得查询对象。6.如权利要求1所述的一种基于SQL操作Mo...

【专利技术属性】
技术研发人员:马均伟邹阳兴孙阳芳侯立
申请(专利权)人:北京龙软科技股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1