一、背景介紹
MongoDB 是由C++語(yǔ)言編寫的,是一個(gè)基于分布式文件存儲(chǔ)的開源數(shù)據(jù)庫(kù)系統(tǒng)。
在高負(fù)載的情況下,添加更多的節(jié)點(diǎn),可以保證服務(wù)器性能。
MongoDB 旨在為WEB應(yīng)用提供可擴(kuò)展的高性能數(shù)據(jù)存儲(chǔ)解決方案。
MongoDB 將數(shù)據(jù)存儲(chǔ)為一個(gè)文檔,數(shù)據(jù)結(jié)構(gòu)由鍵值(key=>value)對(duì)組成。MongoDB 文檔類似于 JSON 對(duì)象。字段值可以包含其他文檔,數(shù)組及文檔數(shù)組。
主要特性:
面向集合存儲(chǔ),易于存儲(chǔ)對(duì)象類型的數(shù)據(jù)
模式自由
支持動(dòng)態(tài)查詢
支持完全索引,包含內(nèi)部對(duì)象
支持復(fù)制和故障恢復(fù)
使用高效的二進(jìn)制數(shù)據(jù)存儲(chǔ),包括大型對(duì)象
文件存儲(chǔ)格式為BSON(一種JSON的擴(kuò)展)
二、知識(shí)剖析
文檔(document)是MongoDB中數(shù)據(jù)的基本單元,非常類似于關(guān)系型數(shù)據(jù)庫(kù)系統(tǒng)中的行(但是比行要復(fù)雜的多)
集合(collection)就是一組文檔,如果說MongoDB中的文檔類似于關(guān)系型數(shù)據(jù)庫(kù)中的行,那么集合就如同表
MongoDB的單個(gè)計(jì)算機(jī)可以容納多個(gè)獨(dú)立的數(shù)據(jù)庫(kù),每一個(gè)數(shù)據(jù)庫(kù)都有自己的集合和權(quán)限
MongoDB自帶簡(jiǎn)潔但功能強(qiáng)大的JavaScript shell,這個(gè)工具對(duì)于管理MongoDB實(shí)例和操作數(shù)據(jù)作用非常大
每一個(gè)文檔都有一個(gè)特殊的鍵"_id",它在文檔所處的集合中是唯一的,相當(dāng)于關(guān)系數(shù)據(jù)庫(kù)中的表的主鍵
基本的命令:
1.創(chuàng)建數(shù)據(jù)庫(kù):use mydb1
2.刪除當(dāng)前數(shù)據(jù)庫(kù):db.dropDatabase()
3.查看所有數(shù)據(jù)庫(kù):show dbs
4.查看當(dāng)前的數(shù)據(jù)庫(kù):db
5.查看當(dāng)前所有數(shù)據(jù)庫(kù)中的集合:show tables? || show collections
6.創(chuàng)建集合兩種方式:
? ? ? 顯示創(chuàng)建:db.createCollection("集合名成");
? 隱式創(chuàng)建:db.集合名稱.insert({name:"李四",age:22});
7.向集合添加文檔:db.集合名稱.insert({name:"李四",age:22});
8.刪除集合文檔:db.集合名稱.remove({刪除條件});
? ? ? ? ? ? ? ? db.集合名稱.remove(); --刪除了所有文檔
9.查詢集合中的文檔:db.集合名稱.find({條件});
? ? ? ? ? ? ? ? ? ? db.集合名稱.findOne(); -- 查出第一個(gè)
三、常見問題
Mongodb命令不習(xí)慣
四、解決
看操作
五、擴(kuò)展思考
Mongodb還支持一些額外的參數(shù)選項(xiàng):有時(shí)候我們返回特定的參數(shù)
? //返回除了age所有字段
db.集合名稱.find({},{age:0});
//返回tags=ten除了comments的所有列
db.集合名稱.find({tags:'ten'},{comments:0});
//返回id=16 的nane 字段
db.集合名稱.({id:16},{name:1});
注意:——id字段始終都會(huì)返回。
六、參考文獻(xiàn)
菜鳥編程
問答階段:
譚道霄:現(xiàn)在MongoDB是不是沒人使用了
答:看具體場(chǎng)景使用。
“我們相信人人都可以成為一個(gè)工程師,現(xiàn)在開始,找個(gè)師兄,帶你入門,掌控自己學(xué)習(xí)的節(jié)奏,學(xué)習(xí)的路上不再迷?!薄?/p>
這里是技能樹.IT修真院,成千上萬的師兄在這里找到了自己的學(xué)習(xí)路線,學(xué)習(xí)透明化,成長(zhǎng)可見化,師兄1對(duì)1免費(fèi)指導(dǎo)。快來與我一起學(xué)習(xí)吧 !