针对数据内容结构不确定的存储与查询方案(MongoDB)

写在最前

我认为,要保存/查询一系列没有固定结构的数据,与其“行专列”这种研究曲线救国的解决方案,不如直接使用nosql数据库,从本质上解决问题,nosql本来就是为了解决这个问题而存在的。

nosql又分为4类–键值,列存储,文档型,图形(Graph)

参考

其中我挑选了 最适合我们的 文档型

文档型数据库可 以看作是键值数据库的升级版,允许之间嵌套键值。而且文档型数据库比键值数据库的查询效率更高

而为什么不用列存储数据库?

因为它们通常是用来应对分布式存储的海量数据,与我们现在业务不匹配,而且文档型数据库也同样可以应用在分布式存储

MongoDB

在所有的文档数据库中,我认为MongoDB最适合,其2009年面市,是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。

MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似jsonbson格式,因此可以存储比较复杂的数据类型。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 文件夹 如图

《针对数据内容结构不确定的存储与查询方案(MongoDB)》 Paste_Image.png

使用mongod命令 启动数据库

mongod --dbpath data --logpath log\mongod.log --logappend

《针对数据内容结构不确定的存储与查询方案(MongoDB)》 Paste_Image.png

注意所在路径

然后配置服务让以后可以方便开关数据库

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)》 1

通过这张图可以大致看出mongodb和sql的区别

mongodb提供了很多操作符 来打到类似关系型数据库的相关功能

.net mongodb

mongodb中文社区

    原文作者:时代小召唤
    原文地址: https://www.jianshu.com/p/59c23ee5b650
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞