1. 程式人生 > >【MongoDB】——Hello Mongodb

【MongoDB】——Hello Mongodb

    MongoDB其實前幾年就知道,但是一直都沒有深入學習過,藉著工作的機會,有機會從零開始認識MongoDB。

what‘s mongodb?

    由C++語言編寫的資料庫,當前NoSQL資料庫產品的一種,目的為web應用程式提供高效能,高可用性且易擴充套件的資料儲存解決方案。同時也是一種開源,容易擴充套件,表結構比較自由的,高效能且面向文件的資料庫。

mongodb的特點

1、資料檔案儲存格式為BSON
2、面向集合儲存,易於儲存物件型別和Json形式的資料
3、模式自由,一個集合中儲存的文件格式不固定
4、支援動態查詢
5、支援完整的索引
6、支援複製和故障恢復,自動分片,可動態新增機器
7、二進位制資料儲存
8、支援多種語言
9、使用記憶體對映儲存引擎

mongodb資料結構

和傳統資料庫不同的地方,NoSQL的有兩個基本概念,集合,文件
1、文件,就是nosql中儲存資料的基本單元,鍵值對按照BSON的格式組合起來存入mongodb就是文件,類似於關係性資料庫中的記錄。
mongodb中文件的特點
每個文件中都有一個特殊鍵“_id”,在文件所在的集合中是唯一的
文件中每個鍵值對都是有序的,但凡順序不同,則表示為不同的文件
鍵值對區分大小寫
鍵值對不能有重複的鍵
2、集合就是一組文件,類似於關係性資料庫中的表,但是沒有表頭
集合下面如果還有集合,則稱為子集合

why use mongodb?

1、mongodb為記憶體型資料庫,效能比較高,適合做資訊基礎設施的快取層,mongodb搭建的持久化快取可以避免下層的資料來源過載
2、大尺寸,價值底的資料,可以先通過模式自由儲存資料,之後對資料進行處理
3、高伸縮性的場景,自動分片支援數百臺伺服器
4、BSON的資料格式適合文件格式化的儲存和查詢
不合適使用mongodb的地方
1、對事物要求嚴格
2、需要高度優化的查詢方式
3、使用sql更方便,因為mongodb使用json查詢,但是對於統計可能存在不便之處。
個人感受
    剛開始學習mongodb,在作用上可以和redis進行比較學習,在具體的使用上和msql又很接近,因為之前對redis和mysql都有過些瞭解,mongodb看一起來有那麼一些熟悉感,對個人來說這是個良好的開端吧。