热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

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

写在最前

我认为,要保存/查询一系列没有固定结构的数据,与其“行专列”这种研究曲线救国的解决方案,不如直接使用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 文件夹 如图

《针对数据内容结构不确定的存储与查询方案(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中文社区


推荐阅读
author-avatar
ShenTing止想念
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有