針對數(shù)據(jù)內(nèi)容結(jié)構(gòu)不確定的存儲與查詢方案(MongoDB)

寫在最前

我認(rèn)為,要保存/查詢一系列沒有固定結(jié)構(gòu)的數(shù)據(jù),與其“行專列”這種研究曲線救國的解決方案,不如直接使用nosql數(shù)據(jù)庫,從本質(zhì)上解決問題,nosql本來就是為了解決這個問題而存在的。

nosql又分為4類--鍵值,列存儲,文檔型,圖形(Graph)

參考

其中我挑選了 最適合我們的 文檔型

文檔型數(shù)據(jù)庫可 以看作是鍵值數(shù)據(jù)庫的升級版,允許之間嵌套鍵值。而且文檔型數(shù)據(jù)庫比鍵值數(shù)據(jù)庫的查詢效率更高

而為什么不用列存儲數(shù)據(jù)庫?

因為它們通常是用來應(yīng)對分布式存儲的海量數(shù)據(jù),與我們現(xiàn)在業(yè)務(wù)不匹配,而且文檔型數(shù)據(jù)庫也同樣可以應(yīng)用在分布式存儲

MongoDB

在所有的文檔數(shù)據(jù)庫中,我認(rèn)為MongoDB最適合,其2009年面市,是一個基于分布式文件存儲的數(shù)據(jù)庫。由C++語言編寫。旨在為WEB應(yīng)用提供可擴(kuò)展的高性能數(shù)據(jù)存儲解決方案。

MongoDB是一個介于關(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)非常松散,是類似jsonbson格式,因此可以存儲比較復(fù)雜的數(shù)據(jù)類型。Mongo最大的特點是他支持的查詢語言非常強(qiáng)大,其語法有點類似于面向?qū)ο蟮牟樵冋Z言,幾乎可以實現(xiàn)類似關(guān)系數(shù)據(jù)庫單表查詢的絕大部分功能,而且還支持對數(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)險回避

本次項目我建議僅對 order表和operation表 使用nosql 存儲,其他的庫表依舊使用aibol配合linq to sql + MSSQL
這樣可以使我們依舊可以使用之前的模塊加快開發(fā)速度,也滿足了新功能的開發(fā)需求,日后也有逐步升級的空間

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)注意打分號

C:\Program Files\MongoDB\Server\3.4\bin

然后創(chuàng)建一個 data log 文件夾 如圖

Paste_Image.png

使用mongod命令 啟動數(shù)據(jù)庫

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

注意所在路徑

然后配置服務(wù)讓以后可以方便開關(guān)數(shù)據(jù)庫

mongod --dbpath "Z:\MongoDb\data" --logpath "Z:\MongoDb\log\mongod.log" --logappend --install --serviceName "MongoDB"

注意修改自己的路徑,并關(guān)掉其他控制臺不要打開日志文件

然后就可以使用

net start MongoDB

來啟動數(shù)據(jù)庫了

net stop MongoDB 

可以關(guān)閉數(shù)據(jù)庫

另外補(bǔ)充一個 mongo shell 就是bin目錄下的 mongo.exe,用它可以直接操作mongodb,建議發(fā)送快捷方式到桌面

使用MongoDB

1

通過這張圖可以大致看出mongodb和sql的區(qū)別

mongodb提供了很多操作符 來打到類似關(guān)系型數(shù)據(jù)庫的相關(guān)功能

.net mongodb

mongodb中文社區(qū)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容