写在最前
我认为,要保存/查询一系列没有固定结构的数据,与其“行专列”这种研究曲线救国的解决方案,不如直接使用nosql数据库,从本质上解决问题,nosql本来就是为了解决这个问题而存在的。
nosql又分为4类--键值,列存储,文档型,图形(Graph)
其中我挑选了 最适合我们的 文档型
文档型数据库可 以看作是键值数据库的升级版,允许之间嵌套键值。而且文档型数据库比键值数据库的查询效率更高
而为什么不用列存储数据库?
因为它们通常是用来应对分布式存储的海量数据,与我们现在业务不匹配,而且文档型数据库也同样可以应用在分布式存储
MongoDB
在所有的文档数据库中,我认为MongoDB最适合,其2009年面市,是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。
MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引
正好解决了我们现在需要解决的问题
1,数据结构松散不确定
2,分布式,可扩展
3,查询条件奇葩
还有其使用简单,文档齐全,适合我们初次接触nosql的程序员--“是非关系数据库当中功能最丰富,最像关系数据库的”
风险回避
本次项目我建议仅对 order表和operation表 使用nosql 存储,其他的库表依旧使用aibol配合linq to sql + MSSQL
这样可以使我们依旧可以使用之前的模块加快开发速度,也满足了新功能的开发需求,日后也有逐步升级的空间
MongoDB使用
1.下载
https://www.mongodb.com/download-center?jmp=nav#enterprise
或者
baidu盘
2.安装
全部下一步
3.配置
配置环境变量
默认安装路径在 C:\Program Files\MongoDB
将bin目录添加到系统的path变量,老系统注意打分号
C:\Program Files\MongoDB\Server\3.4\bin
然后创建一个 data log 文件夹 如图
使用mongod命令 启动数据库
mongod --dbpath data --logpath log\mongod.log --logappend
注意所在路径
然后配置服务让以后可以方便开关数据库
mongod --dbpath "Z:\MongoDb\data" --logpath "Z:\MongoDb\log\mongod.log" --logappend --install --serviceName "MongoDB"
注意修改自己的路径,并关掉其他控制台不要打开日志文件
然后就可以使用
net start MongoDB
来启动数据库了
net stop MongoDB
可以关闭数据库
另外补充一个 mongo shell 就是bin目录下的 mongo.exe,用它可以直接操作mongodb,建议发送快捷方式到桌面
使用MongoDB
通过这张图可以大致看出mongodb和sql的区别
mongodb提供了很多操作符 来打到类似关系型数据库的相关功能