寫在最前
我認(rèn)為磨镶,要保存/查詢一系列沒有固定結(jié)構(gòu)的數(shù)據(jù)溃蔫,與其“行專列”這種研究曲線救國的解決方案,不如直接使用nosql數(shù)據(jù)庫琳猫,從本質(zhì)上解決問題伟叛,nosql本來就是為了解決這個(gè)問題而存在的。
nosql又分為4類--鍵值脐嫂,列存儲(chǔ)统刮,文檔型,圖形(Graph)
其中我挑選了 最適合我們的 文檔型
文檔型數(shù)據(jù)庫可 以看作是鍵值數(shù)據(jù)庫的升級(jí)版账千,允許之間嵌套鍵值侥蒙。而且文檔型數(shù)據(jù)庫比鍵值數(shù)據(jù)庫的查詢效率更高
而為什么不用列存儲(chǔ)數(shù)據(jù)庫?
因?yàn)樗鼈兺ǔJ怯脕響?yīng)對(duì)分布式存儲(chǔ)的海量數(shù)據(jù)匀奏,與我們現(xiàn)在業(yè)務(wù)不匹配鞭衩,而且文檔型數(shù)據(jù)庫也同樣可以應(yīng)用在分布式存儲(chǔ)
MongoDB
在所有的文檔數(shù)據(jù)庫中,我認(rèn)為MongoDB最適合娃善,其2009年面市论衍,是一個(gè)基于分布式文件存儲(chǔ)的數(shù)據(jù)庫。由C++語言編寫聚磺。旨在為WEB應(yīng)用提供可擴(kuò)展的高性能數(shù)據(jù)存儲(chǔ)解決方案饲齐。
MongoDB是一個(gè)介于關(guān)系數(shù)據(jù)庫和非關(guān)系數(shù)據(jù)庫之間的產(chǎn)品,是非關(guān)系數(shù)據(jù)庫當(dāng)中功能最豐富咧最,最像關(guān)系數(shù)據(jù)庫的。他支持的數(shù)據(jù)結(jié)構(gòu)非常松散,是類似json的bson格式矢沿,因此可以存儲(chǔ)比較復(fù)雜的數(shù)據(jù)類型滥搭。Mongo最大的特點(diǎn)是他支持的查詢語言非常強(qiáng)大,其語法有點(diǎn)類似于面向?qū)ο蟮牟樵冋Z言捣鲸,幾乎可以實(shí)現(xiàn)類似關(guān)系數(shù)據(jù)庫單表查詢的絕大部分功能瑟匆,而且還支持對(duì)數(shù)據(jù)建立索引
正好解決了我們現(xiàn)在需要解決的問題
1,數(shù)據(jù)結(jié)構(gòu)松散不確定
2栽惶,分布式愁溜,可擴(kuò)展
3,查詢條件奇葩
還有其使用簡單外厂,文檔齊全冕象,適合我們初次接觸nosql的程序員--“是非關(guān)系數(shù)據(jù)庫當(dāng)中功能最豐富,最像關(guān)系數(shù)據(jù)庫的”
風(fēng)險(xiǎn)回避
本次項(xiàng)目我建議僅對(duì) order表和operation表 使用nosql 存儲(chǔ)汁蝶,其他的庫表依舊使用aibol配合linq to sql + MSSQL
這樣可以使我們依舊可以使用之前的模塊加快開發(fā)速度渐扮,也滿足了新功能的開發(fā)需求,日后也有逐步升級(jí)的空間
MongoDB使用
1.下載
https://www.mongodb.com/download-center?jmp=nav#enterprise
或者
baidu盤
2.安裝
全部下一步
3.配置
配置環(huán)境變量
默認(rèn)安裝路徑在 C:\Program Files\MongoDB
將bin目錄添加到系統(tǒng)的path變量,老系統(tǒng)注意打分號(hào)
C:\Program Files\MongoDB\Server\3.4\bin
然后創(chuàng)建一個(gè) data log 文件夾 如圖
使用mongod命令 啟動(dòng)數(shù)據(jù)庫
mongod --dbpath data --logpath log\mongod.log --logappend
注意所在路徑
然后配置服務(wù)讓以后可以方便開關(guān)數(shù)據(jù)庫
mongod --dbpath "Z:\MongoDb\data" --logpath "Z:\MongoDb\log\mongod.log" --logappend --install --serviceName "MongoDB"
注意修改自己的路徑,并關(guān)掉其他控制臺(tái)不要打開日志文件
然后就可以使用
net start MongoDB
來啟動(dòng)數(shù)據(jù)庫了
net stop MongoDB
可以關(guān)閉數(shù)據(jù)庫
另外補(bǔ)充一個(gè) mongo shell 就是bin目錄下的 mongo.exe,用它可以直接操作mongodb,建議發(fā)送快捷方式到桌面
使用MongoDB
通過這張圖可以大致看出mongodb和sql的區(qū)別
mongodb提供了很多操作符 來打到類似關(guān)系型數(shù)據(jù)庫的相關(guān)功能