針對數據內容結構不確定的存儲與查詢方案(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 文件夾 如圖

Paste_Image.png

使用mongod命令 啟動數據庫

mongod --dbpath data --logpath log\mongod.log --logappend
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

1

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

mongodb提供了很多操作符 來打到類似關系型數據庫的相關功能

.net mongodb

mongodb中文社區

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容