本发明涉及数据库,具体的,涉及一种基于mysql语言的mongodb数据更新方法。
背景技术:
1、mysql数据库是最流行的关系型数据库管理系统之一,也是最好用的关系数据库管理系统应用软件之一,但mysql却不能处理大规模数据更新问题,无法大规模分布式容灾部署。mongodb数据库是一种基于分布式文件存储的数据库,旨在为web应用提供可扩展的高性能数据存储解决方案。mysql数据库作为主流的应用软件,sql语言被广泛学习与应用,却无法被直接应用于mongodb数据库中,需要掌握专门的mongodb数据库操作,对研发人员要求高。
技术实现思路
1、本发明提出一种基于sql语言的mongodb数据更新方法,解决了相关技术中mongodb数据库操作不便的问题。
2、本发明的技术方案如下:包括:
3、获得元表、元字段表和主数据表,所述元表包括多条元表记录,任一条元表记录包括一个表名和至少一个表名属性;所述元字段表包括多条元字段记录,任一条元字段记录包括一个字段名和至少一个字段名属性;所述主数据表包括多条主数据记录,任一条主数据记录包括一个主数据值和至少一个主数据值属性;
4、在识别到sql语句执行时,解析语法树提取出所述sql语句中的操作字、表名、字段名和主数据值;
5、根据所述sql操作字将sql语句替换为对应的mongodb语句;
6、执行所述mongodb语句。
7、进一步,任一条元表记录还包括与表名对应的第一编号,任一条元字段记录还包括与字段名对应的第二编号,任一条主数据记录还包括与主数据值对应的第三编号;
8、在将sql语句替换为对应的mongodb语句之后,还包括:将所述表名替换为对应的第一编号、将所述字段名替换为对应的第二编号,将所述主数据值替换为第三编号。
9、进一步,所述sql语句为select语句,所述select语句中的sql操作字为select,对应的mongodb语句为:db.getcollection("第一编号").find({"data.第二编号": "第三编号"})。
10、进一步,所述sql语句为delete语句,所述delete语句中的sql操作字为delete,对应的mongodb语句为:db.getcollection("第一编号").remove({"data.第二编号":"第三编号"})。
11、进一步,所述sql语句为insert语句,所述insert语句中的sql操作字为insert,通过解析语法树提取得到所述sql语句中的表名、第一字段名、第二字段名、第一主数据值和第二主数据值,则对应的mongodb语句为:db.getcollection("第一编号").insert({"data.第一字段名对应的第二编号":"第一主数据值对应的第三编号","data.第二字段名对应的第二编号": "第二主数据值对应的第三编号"})。
12、进一步,所述sql语句为update语句,所述update语句中的sql操作字为update,通过解析语法树提取得到所述sql语句中的表名、第一字段名、第二字段名、第一主数据值和第二主数据值,对应的mongodb语句为:db.getcollection("第一编号").updatemany({data.第一字段名对应的第二编号:" 第一主数据值对应的第三编号"},{$set:{"data.第二字段名对应的第二编号": "第二主数据值对应的第三编号"}})。
13、进一步,所述元表、元字段表和主数据表通过图形化界面预先录入,并保存在mongodb中。
14、进一步,在识别到sql语句执行时,进行用户权限验证。
15、本发明的工作原理及有益效果为:
16、本发明将元表、元字段表、主数据表作为中间桥梁存储于mongodb数据库中,根据操作字完成sql语言到mongodb语言的转换,通过元表、元字段表和主数据表建立起表名,字段名、主数据值之间的约束关系,用于后续mongodb数据库的操作,这样就实现了sql语句对mongodb数据库的操作,给开发工作带来了便利。
1.一种基于sql语言的mongodb数据更新方法,其特征在于,包括:
2.根据权利要求1所述的基于sql语言的mongodb数据更新方法,其特征在于,
3.根据权利要求2所述的基于sql语言的mongodb数据更新方法,其特征在于,所述sql语句为select语句,所述select语句中的sql操作字为select,对应的mongodb语句为:db.getcollection("第一编号").find({"data.第二编号": "第三编号"})。
4.根据权利要求2所述的基于sql语言的mongodb数据更新方法,其特征在于,所述sql语句为delete语句,所述delete语句中的sql操作字为delete,对应的mongodb语句为:db.getcollection("第一编号").remove({"data.第二编号":"第三编号"})。
5.根据权利要求2所述的基于sql语言的mongodb数据更新方法,其特征在于,所述sql语句为insert语句,所述insert语句中的sql操作字为insert,通过解析语法树提取得到所述sql语句中的表名、第一字段名、第二字段名、第一主数据值和第二主数据值,则对应的mongodb语句为:db.getcollection("第一编号").insert({"data.第一字段名对应的第二编号":"第一主数据值对应的第三编号","data.第二字段名对应的第二编号": "第二主数据值对应的第三编号"})。
6.根据权利要求2所述的基于sql语言的mongodb数据更新方法,其特征在于,所述sql语句为update语句,所述update语句中的sql操作字为update,通过解析语法树提取得到所述sql语句中的表名、第一字段名、第二字段名、第一主数据值和第二主数据值,对应的mongodb语句为:db.getcollection("第一编号").updatemany({data.第一字段名对应的第二编号:" 第一主数据值对应的第三编号"},{$set:{"data.第二字段名对应的第二编号": "第二主数据值对应的第三编号"}})。
7.根据权利要求1或2所述的基于sql语言的mongodb数据更新方法,其特征在于,
8.根据权利要求1所述的基于sql语言的mongodb数据更新方法,其特征在于,还包括:在识别到sql语句执行时,进行用户权限验证。