基于MongoDB的Collection版本控制方法及系统技术方案

技术编号:24289569 阅读:45 留言:0更新日期:2020-05-26 20:00
本发明专利技术涉及一种基于MongoDB的Collection版本控制方法及系统,包括创建领域实体基类Entity、创建各领域实体类、创建自定义配置属性类Settings、创建上下文接口类Icontext、创建数据库上下文实现体DataContext类、创建数据仓储泛型接口类IRepository<T>、创建业务逻辑实现类以及在所创建的业务逻辑实现类的构造函数中初始化上下文接口类IContext的全局变量和该类要操作的MongoDB中的领域实例类集合版本号。本发明专利技术的代码逻辑清晰、容易上手管理、便于一些业务逻辑的实现以及能很好的解决项目中集成数据结构复杂且后期集成数据量较大时数据杂乱。

Collection version control method and system based on mongodb

【技术实现步骤摘要】
基于MongoDB的Collection版本控制方法及系统
本专利技术属于数据处理
,涉及一种Collection版本控制方法及系统,尤其涉及一种基于MongoDB的Collection版本控制方法及系统。
技术介绍
MongoDB是一个基于分布式文件存储的数据库,由C++语言编写,旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。MongoDB服务端可运行在Linux、Windows或macosx平台,支持32位和64位应用,默认端口为27017。推荐运行在64位平台,因为MongoDB在32位模式运行时支持的最大文件尺寸为2GB。一个MongoDB实例可以包含一组数据库,一个DataBase可以包含一组Collection(集合),一个集合可以包含一组Document(文档)。一个Document包含一组field(字段),每一个字段都是一个key/valuepair。现有技术在处理数据集成类项目中,因为需要集成的数据内容结构复杂且变更频繁,因此采用MongoDB对该类集成数据进行存储管理是最优方案,后期集成数据量大时也较容易进行分布式部署。然而针对集成内容变更频繁的场景,通常有两种解决方案:1)在同一Collection中将多个集成内容版本通过一个版本字段进行记录,对于集成数据结构简单、数据量小的场景,这种方式是一种很不错的选择。2)集成数据结构复杂且后期集成数据量较大时方案1)的劣势则体现的淋漓尽致,对于此想到了将不同集成内容版本的集成数据放在不同的Collection中进行管理,然而如何利用一套针对某一领域的数据业务接口操作不同集成内容版本的Collection集合数据仍然是存在问题。
技术实现思路
为了解决
技术介绍
中存在的上述技术问题,本专利技术提供了一种代码逻辑清晰、容易上手管理、便于一些业务逻辑的实现以及能很好的解决项目中集成数据结构复杂且后期集成数据量较大时数据杂乱的基于MongoDB的Collection版本控制方法及系统。为了实现上述目的,本专利技术采用如下技术方案:一种基于MongoDB的Collection版本控制方法,其特征在于:所述基于MongoDB的Collection版本控制方法包括以下步骤:1)创建领域实体基类Entity,其中定义有主键和创建时间两属性,主键须标有BsonId以及BsonRepresentation两特征,其他领域实体均继承自该基类;2)创建各领域实体类,所述各领域实体类继承自步骤1)所创建的实体基类Entity;3)创建自定义配置属性类Settings,其中定义有MongoDB的连接字符串以及操作数据库名称两属性,用于读取应用配置文件中的自定义全局变量值;4)创建上下文接口类IContext,其中定义有数据库集合版本Version属性以及多个步骤2)创建的领域实体IMongoCollection泛型集合;5)创建数据库上下文实现体DataContext类,所述数据库上下文实现体DataContext类继承自步骤4)创建的上下文接口类IContext,在类DataContext的构造函数中实例化类型为IMongoDatabase的MongoDB数据库全局只读变量、初始化数据库集合版本Version属性值、实例化领域实体IMongoCollection泛型集合;6)创建数据仓储泛型接口类IRepository<T>,其中类型T继承自步骤1)创建的实体基类Entity,在该类中定义各种对步骤2)所创建的领域实体数据操作的业务方法声明,至此核心类信息创建完成;7)创建业务逻辑实现类,所述业务逻辑实现类继承自步骤6)所创建的数据仓储泛型接口类IRepository<T>,其中T是步骤2)所创建的某一领域实体类;8)在步骤7)所创建的业务逻辑实现类的构造函数中初始化上下文接口类IContext的全局变量和该类要操作的MongoDB中的领域实例类集合版本号,至此利用上下文接口类IContext的全局变量对领域实例类集合的各类操作均为初始化版本号的集合数据。上述步骤6)中的声明的具体方式是:同步增删改查或异步增删改查。一种基于MongoDB的Collection版本控制系统,其特征在于:所述基于MongoDB的Collection版本控制系统包括:基类模块,所述基类模块定义了为包含所有实体的共性,该方法内部基类包含共性为主键和创建时间,其他领域的类必须集成该基类;实体类模块,主要是作为数据管理和业务逻辑处理层面上存在的类别,主要在分析阶段区分实体类的主要职责是存储和管理系统内部的信息;接口模块,包含对协定进行定义的引用类型,用于对业务逻辑操作中方法的定义;实现类模块,关注点主要集中在业务规则的制定、业务流程的实现等与业务需求有关的系统设计;连接类模块,实现对MongDB的连接以及继承连接接口,并对连接接口定义的方法进行逻辑实现,利用上下文连接接口末了的全局变量对实现类模块集合的各类操作均为初始化版本号的集合数据;连接接口模块,为定义操作MongDB层的逻辑接口;连接模块,定义了全局的连接MongDB的字符串和操作数据库的两大属性;所述基类模块通过实体类模块以及接口模块接入实现类模块;所述连接模块通过连接接口模块以及连接类模块接入实现类模块。本专利技术的优点是:本专利技术提供了一种基于MongoDB的Collection版本控制方法及系统,该方法包括创建领域实体基类Entity、创建各领域实体类、创建自定义配置属性类Settings、创建上下文接口类Icontext、创建数据库上下文实现体DataContext类、创建数据仓储泛型接口类IRepository<T>、创建业务逻辑实现类、在步骤7)所创建的业务逻辑实现类的构造函数中初始化上下文接口类IContext的全局变量和该类要操作的MongoDB中的领域实例类集合版本号,至此利用上下文接口类IContext的全局变量对领域实例类集合的各类操作均为初始化版本号的集合数据。本专利技术的代码逻辑清晰,容易上手管理;保留了历史数据,从而便于一些业务逻辑的实现;能很好的解决项目中集成数据结构复杂且后期集成数据量较大时数据杂乱。附图说明图1是本专利技术所提供的基于MongoDB的Collection版本控制方法的流程图;图2是本专利技术所提供的基于MongoDB的Collection版本控制系统的框架图。具体实施方式参见图1,本发本文档来自技高网
...

【技术保护点】
1.一种基于MongoDB的Collection版本控制方法,其特征在于:所述基于MongoDB的Collection版本控制方法包括以下步骤:/n1)创建领域实体基类Entity,其中定义有主键和创建时间两属性,主键须标有BsonId以及BsonRepresentation两特征,其他领域实体均继承自该基类;/n2)创建各领域实体类,所述各领域实体类继承自步骤1)所创建的实体基类Entity;/n3)创建自定义配置属性类Settings,其中定义有MongoDB的连接字符串以及操作数据库名称两属性,用于读取应用配置文件中的自定义全局变量值;/n4)创建上下文接口类IContext,其中定义有数据库集合版本Version属性以及多个步骤2)创建的领域实体IMongoCollection泛型集合;/n5)创建数据库上下文实现体DataContext类,所述数据库上下文实现体DataContext类继承自步骤4)创建的上下文接口类IContext,在类DataContext的构造函数中实例化类型为IMongoDatabase的MongoDB数据库全局只读变量、初始化数据库集合版本Version属性值、实例化领域实体IMongoCollection泛型集合;/n6)创建数据仓储泛型接口类IRepository<T>,其中类型T继承自步骤1)创建的实体基类Entity,在该类中定义各种对步骤2)所创建的领域实体数据操作的业务方法声明,至此核心类信息创建完成;/n7)创建业务逻辑实现类,所述业务逻辑实现类继承自步骤6)所创建的数据仓储泛型接口类IRepository<T>,其中T是步骤2)所创建的某一领域实体类;/n8)在步骤7)所创建的业务逻辑实现类的构造函数中初始化上下文接口类IContext的全局变量和该类要操作的MongoDB中的领域实例类集合版本号,至此利用上下文接口类IContext的全局变量对领域实例类集合的各类操作均为初始化版本号的集合数据。/n...

【技术特征摘要】
1.一种基于MongoDB的Collection版本控制方法,其特征在于:所述基于MongoDB的Collection版本控制方法包括以下步骤:
1)创建领域实体基类Entity,其中定义有主键和创建时间两属性,主键须标有BsonId以及BsonRepresentation两特征,其他领域实体均继承自该基类;
2)创建各领域实体类,所述各领域实体类继承自步骤1)所创建的实体基类Entity;
3)创建自定义配置属性类Settings,其中定义有MongoDB的连接字符串以及操作数据库名称两属性,用于读取应用配置文件中的自定义全局变量值;
4)创建上下文接口类IContext,其中定义有数据库集合版本Version属性以及多个步骤2)创建的领域实体IMongoCollection泛型集合;
5)创建数据库上下文实现体DataContext类,所述数据库上下文实现体DataContext类继承自步骤4)创建的上下文接口类IContext,在类DataContext的构造函数中实例化类型为IMongoDatabase的MongoDB数据库全局只读变量、初始化数据库集合版本Version属性值、实例化领域实体IMongoCollection泛型集合;
6)创建数据仓储泛型接口类IRepository<T>,其中类型T继承自步骤1)创建的实体基类Entity,在该类中定义各种对步骤2)所创建的领域实体数据操作的业务方法声明,至此核心类信息创建完成;
7)创建业务逻辑实现类,所述业务逻辑实现类继承自步骤6)所创建的数据仓储泛型接口类IRepository<T>,其中T是步骤2)所创建的某一领域...

【专利技术属性】
技术研发人员:李雨雨魏超肖彦科杨森常鹏杨俊毅
申请(专利权)人:陕西心像信息科技有限公司
类型:发明
国别省市:陕西;61

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

1