1,關(guān)系型數(shù)據(jù)庫(kù)與Mongodb的術(shù)語(yǔ)類(lèi)比
1.1涵卵,術(shù)語(yǔ)對(duì)比介紹
Mysql術(shù)語(yǔ) | MongoDB術(shù)語(yǔ) | 介紹 |
---|---|---|
database | database | 數(shù)據(jù)庫(kù) |
table | collection | 數(shù)據(jù)庫(kù)表 – 集合 |
row | document | 數(shù)據(jù)記錄 – 文檔 |
column | field | 數(shù)據(jù)字段 – 域 |
index | index | 索引 – 索引 |
table-join | 內(nèi)嵌 | 表連接 - 內(nèi)嵌 |
primary key | primary key | 主鍵 |
1.2,術(shù)語(yǔ)補(bǔ)充說(shuō)明
- 集合(collection)就是關(guān)系型書(shū)庫(kù)中的表
- 文檔(document)對(duì)應(yīng)關(guān)系型數(shù)據(jù)庫(kù)中的行,文檔就是一個(gè)JSON對(duì)象茵宪,由KEY=VALUE鍵值對(duì)構(gòu)成,例如
{"name":"admin", "gender":"男"}
- 集合可以存儲(chǔ)多個(gè)文檔瘦棋,結(jié)構(gòu)不固定
{"name":"admin", "gender":"男"}
{"name":"manager", "age":23}
{"name":"manager", "phone":"16868686868"}
- 數(shù)據(jù)庫(kù)可以存儲(chǔ)多個(gè)集合
- 服務(wù)器眉厨,一個(gè)服務(wù)器中可以包含多個(gè)數(shù)據(jù)庫(kù)
1.3,文檔的邏輯聯(lián)系
- 假設(shè)有兩個(gè)文檔:
#user文檔
{
"name": "Tom Hanks",
"contact": "987654321",
"dob": "01-01-1991"
}
#address文檔
{
"building": "22 A, Indiana Apt",
"pincode": 123456,
"city": "chengdu",
"state": "sichuan"
}
- 關(guān)系1:嵌入式關(guān)系兽狭,把 address 文檔嵌入到 user 文檔中
#這就是嵌入式的關(guān)系
{
"name": "Tom Hanks",
"contact": "987654321",
"dob": "01-01-1991",
"address":
[{
"building": "22 A, Indiana Apt",
"pincode": 123456,
"city": "chengdu",
"state": "sichuan"
},
{
"building": "170 A, Acropolis Apt",
"pincode": 456789,
"city": "beijing",
"state": "beijing"
}]
}
- 關(guān)系2:引用式關(guān)系:將兩個(gè)文檔分開(kāi)憾股,通過(guò)引用文檔的_id字段來(lái)建立關(guān)系
#這就是引用式關(guān)系
{
"contact": "987654321",
"dob": "01-01-1991",
"name": "Tom Benzamin",
"address_ids": [
ObjectId("52ffc4a5d85242602e000000") #對(duì)應(yīng)address文檔的id字段
]
}
2,MongoDB的基本數(shù)據(jù)類(lèi)型
文檔是 MongoDB 的核心箕慧,類(lèi)似于 SQLite 數(shù)據(jù)庫(kù)(關(guān)系數(shù)據(jù)庫(kù))中的每一行數(shù)據(jù)服球。多個(gè)鍵及其關(guān)聯(lián)的值放在一起就是文檔。在 Mongodb 中使用一種類(lèi) json 的 bson 存儲(chǔ)數(shù)據(jù)颠焦,bson 數(shù)據(jù)可以理解為在 json 的基礎(chǔ)上添加了一些 json 中沒(méi)有的數(shù)據(jù)類(lèi)型斩熊。
- ObjectID:文檔id
- String:字符串
- Boolean:布爾值
- Integer:整數(shù)
- Double:浮點(diǎn)數(shù)
- Arrays:數(shù)組或者列表
- Object:嵌入的文檔
- Null:空值
- Timestamp:時(shí)間戳
- Date:日期時(shí)間
3,MongoDB的常用命令
3.1伐庭,數(shù)據(jù)庫(kù)操作
執(zhí)行mongo連接到本地mongo服務(wù)
mongo查看當(dāng)前的數(shù)據(jù)庫(kù)
db展示所有的數(shù)據(jù)庫(kù)
show dbs選擇單個(gè)數(shù)據(jù)庫(kù)
use person刪除數(shù)據(jù)庫(kù)
db.dropDatabase()
3.2粉渠,集合操作
賬號(hào)所有集合
show collections創(chuàng)建一個(gè)集合
db.createCollection("users")創(chuàng)建名字為users的集合
db.users.drop()capped默認(rèn)false,表示不設(shè)置上限圾另,true表示設(shè)置上限霸株,需要設(shè)置size參數(shù),表示達(dá)到上限時(shí)會(huì)將之前的數(shù)據(jù)覆蓋
db.createCollection("dept", {"capped": true, size: 5})
3.3集乔,文檔的操作去件,增刪查改
增加指定集合的數(shù)據(jù),db.<集合名稱(chēng)>.insert()
使用insert向集合中插入數(shù)據(jù)(如果沒(méi)有users集合,mongodb則會(huì)自動(dòng)創(chuàng)建)
db.users.insert([
{ name : "jam",
email : "jam@qq.com"
},
{ name : "tom",
email : "tom@qq.com"
}
])保存指定集合的數(shù)據(jù)尤溜,db.<集合名稱(chēng)>.save()
使用save向集合中插入數(shù)據(jù)(如果沒(méi)有users集合倔叼,mongodb則會(huì)自動(dòng)創(chuàng)建)
db.users.save([
{ name : "jam",
email : "jam@qq.com"
},
{ name : "tom",
email : "tom@qq.com"
}
])查詢(xún)指定集合的數(shù)據(jù),db.<集合名稱(chēng)>.find()
db.users.find()更新指定集合的數(shù)據(jù)宫莱,db.<集合名稱(chēng)>.update()
db.student.update({name:"tom"}, {name:"jerry"})刪除指定集合的數(shù)據(jù)丈攒,db.<集合名稱(chēng)>.remove()
db.student.remove(<query>, {justone:<boolean>})
4,參考頁(yè)面
- mongoDB的安裝及基本使用
http://www.reibang.com/p/51fd20ac5629