MongoDB快速入門
如果把mysql比作大名鼎鼎的c語言;那麼mongodb就是簡單友好的python
Mysql資料庫有什麼缺陷?
- 關系型資料庫表結構複雜,擴充性差;
- 需要較高的學習成本,複雜的表結構會産生更高的維護成本
關系型資料庫的"連接配接查詢"會影響查詢效率?
- 會使查詢效率變低
連接配接查詢效率低,為什麼還要分表?
- 分表可以減少資料備援
資料庫可以不使用複雜的表結構麼?
- 可以,但要多消耗一些存儲空間,mongodb(非關系型資料庫)就為此而生
與Mysql相比,Mongodb簡單極了!
<1>mongo預設開啟了新手模式,登入無需鍵入使用者名和密碼,隻需要在終端輸入
即可進入互動環境
mongo
<2> mongo沒有"表"的概念,也不用設計表(mongo使用"集合"存儲 多個"鍵值對",取代表的功能)
<3> mongo有資料庫的概念,但可以不經建立,直接使用(類似vim編輯器建立新檔案,如果新檔案中未添加資料,則新檔案不會儲存到硬碟;與vim不同的是,如果使用者添加了資料,vim需要手動确認,儲存檔案,mongo會自動儲存資料到相應的資料庫)
<4>mongo沒有mysql中"記錄"的概念,mongo使用"文檔"存儲任意數量的"鍵值對"資訊("記錄"中的資訊受表中各字段的限制,"文檔"可以存放任意數量的鍵值對)
<5>mongo無需手動設定"主鍵",系統會自動為每一個"文檔"自動添加"_id"鍵值對,保證資料的唯一性.
關系型資料庫mysql 與 非關系型資料庫mongodb 概念對比
mysql | mongodb |
---|---|
表(table) | 集合(collection) |
記錄(row) | 文檔(document) |
主鍵(primary key) | _id |
MongoDB基本用法
一.資料庫管理系統
1.服務端
- (1)開啟服務
- 示例
-
sudo service mongod start
-
- 示例
- (2)重新開機服務
-
-
sudo service mongod restart
-
-
- (3)關閉服務
-
-
sudo service mongod stop
-
-
2.用戶端
- (1)登入資料庫
-
-
mongo
-
-
- (2)退出資料庫
-
-
exit
-
-
二.資料庫
1.檢視資料庫
-
-
show dbs
-
2.使用資料庫
- 格式
- use 資料庫名
-
-
use students
-
3.檢視目前資料庫
-
-
db
-
4.删除目前資料庫
-
-
db.dropDatabase()
-
三.集合
1.建立集合
-
- db.createCollection("集合名稱")
- 示例(建立名為
的集合)stu
-
db.createCollection("stu")
-
2.檢視目前資料庫的集合
-
-
show collections
-
3.删除集合
-
- db.drop.集合名()
- 示例(移除名為
的文檔)stu
-
db.drop.stu()
-
四.文檔
1.插入文檔
-
- db.集合名.insert({})
-
-
db.stu.insert({name:"李明",age:18,gender: true,birthday:"1995-12-08",height:186.6})
-
2.删除文檔
-
- db.集合名.remove({删除文檔的條件})
- 示例(移除age=18的文檔)
-
db.stu.remove({age:{$gt:18}})
-
3.修改文檔
-
- db.集合名.update({修改文檔的條件},{$set:{需要修改的屬性名:屬性值}}, {multi: ture})
- 示例(将age=17的文檔更新為 age=18)
-
db.stu.update({age:18},{$set:{age:17}},{multi:true})
-
4.查詢文檔
- 格式(pretty是為了把結果格式化為json格式)
- db.集合名.find({查詢文檔的條件}).pretty()
- 示例(篩選age大于10的文檔)
-
db.stu.find({age:{$gt:10}}).pretty()
-
MongoDB