數(shù)據(jù)庫 文檔 集合 元數(shù)據(jù) 數(shù)據(jù)類型 介紹
小結(jié)
-
數(shù)據(jù)庫
執(zhí)行 show dbs 命令可以查看數(shù)據(jù)庫列表宅倒。
執(zhí)行 db 命令可以顯示當(dāng)前數(shù)據(jù)庫對象或集合谦铃。
執(zhí)行 use 命令婶博,可以連接到一個指定的數(shù)據(jù)庫。
-
數(shù)據(jù)庫也通過名字來標(biāo)識槽袄。數(shù)據(jù)庫名可以是滿足以下條件的任意UTF-8字符串。
- 不能是空字符串("")锋谐。
- 不得含有' '(空格)遍尺、.、$涮拗、/乾戏、\和\0 (空宇符)。
- 應(yīng)全部小寫三热。
- 最多64字節(jié)鼓择。
-
有一些數(shù)據(jù)庫名是保留的,可以直接訪問這些有特殊作用的數(shù)據(jù)庫就漾。
admin:
從權(quán)限的角度來看呐能,這是"root"數(shù)據(jù)庫。要是將一個用戶添加到這個數(shù)據(jù)庫抑堡,這個用戶自動繼承所有數(shù)據(jù)庫的權(quán)限摆出。
一些特定的服務(wù)器端命令也只能從這個數(shù)據(jù)庫運(yùn)行,比如列出所有的數(shù)據(jù)庫或者關(guān)閉服務(wù)器首妖。local:
這個數(shù)據(jù)永遠(yuǎn)不會被復(fù)制偎漫,可以用來存儲限于本地單臺服務(wù)器的任意集合
config:
當(dāng)Mongo用于分片設(shè)置時,config數(shù)據(jù)庫在內(nèi)部使用有缆,用于保存分片的相關(guān)信息象踊。
-
文檔
- 文檔是一個鍵值(key-value)對(即BSON)舌仍。
- 可以把文檔 當(dāng)作關(guān)系型數(shù)據(jù)庫的行 一個文檔 就是一行數(shù)據(jù)。
- MongoDB 的文檔不需要設(shè)置相同的字段通危,并且相同的字段不需要相同的數(shù)據(jù)類型铸豁,這與關(guān)系型數(shù)據(jù)庫有很大的區(qū)別,也是 MongoDB 非常突出的特點(diǎn)菊碟。
-
需要注意的是:
- 文檔中的鍵/值對是有序的节芥。
- 文檔中的值不僅可以是在雙引號里面的字符串,還可以是其他幾種數(shù)據(jù)類型(甚至可以是整個嵌入的文檔)逆害。
- MongoDB區(qū)分類型和大小寫头镊。
- MongoDB的文檔不能有重復(fù)的鍵。
- 文檔的鍵是字符串魄幕。除了少數(shù)例外情況相艇,鍵可以使用任意UTF-8字符。
-
文檔鍵命名規(guī)范:
- 鍵不能含有\(zhòng)0 (空字符)纯陨。這個字符用來表示鍵的結(jié)尾坛芽。
- .和$有特別的意義,只有在特定環(huán)境下才能使用翼抠。
- 以下劃線"_"開頭的鍵是保留的(不是嚴(yán)格要求的)咙轩。
-
集合
集合就是 MongoDB 文檔組,類似于 RDBMS (關(guān)系數(shù)據(jù)庫管理系統(tǒng):Relational Database Management System)中的表格阴颖。
集合存在于數(shù)據(jù)庫中活喊,集合沒有固定的結(jié)構(gòu),這意味著你在對集合可以插入不同格式和類型的數(shù)據(jù)量愧,但通常情況下我們插入集合的數(shù)據(jù)都會有一定的關(guān)聯(lián)性钾菊。
比如,我們可以將以下不同數(shù)據(jù)結(jié)構(gòu)的文檔插入到集合中:
{"site":"www.baidu.com"}
{"site":"www.google.com","name":"Google"}
{"site":"www.runoob.com","name":"baidu","num":5}
當(dāng)?shù)谝粋€文檔插入時偎肃,集合就會被創(chuàng)建煞烫。
-
合法的集合名
- 集合名不能是空字符串""。
- 集合名不能含有\(zhòng)0字符(空字符)软棺,這個字符表示集合名的結(jié)尾红竭。
- 集合名不能以"system."開頭,這是為系統(tǒng)集合保留的前綴喘落。
- 用戶創(chuàng)建的集合名字不能含有保留字符。有些驅(qū)動程序的確支持在集合名里面包含最冰,這是因為某些系統(tǒng)生成的集合中包含該字符瘦棋。
- 除非你要訪問這種系統(tǒng)創(chuàng)建的集合,否則千萬不要在名字里出現(xiàn)$暖哨。
- 如下實例:
db.col.findOne()