7-2 MongoDB 概念解析

數(shù)據(jù)庫(kù) 文檔 集合 元數(shù)據(jù) 數(shù)據(jù)類型 介紹

MongoDB 概念解析

小結(jié)

  • 數(shù)據(jù)庫(kù)
    • 執(zhí)行 show dbs 命令可以查看數(shù)據(jù)庫(kù)列表。

    • 執(zhí)行 db 命令可以顯示當(dāng)前數(shù)據(jù)庫(kù)對(duì)象或集合。

    • 執(zhí)行 use 命令,可以連接到一個(gè)指定的數(shù)據(jù)庫(kù)。

    • 數(shù)據(jù)庫(kù)也通過(guò)名字來(lái)標(biāo)識(shí)。數(shù)據(jù)庫(kù)名可以是滿足以下條件的任意UTF-8字符串。

      • 不能是空字符串("")。
      • 不得含有' '(空格)、.、$、/、\和\0 (空宇符)。
      • 應(yīng)全部小寫。
      • 最多64字節(jié)。
    • 有一些數(shù)據(jù)庫(kù)名是保留的,可以直接訪問(wèn)這些有特殊作用的數(shù)據(jù)庫(kù)。

      • admin
        從權(quán)限的角度來(lái)看,這是"root"數(shù)據(jù)庫(kù)。要是將一個(gè)用戶添加到這個(gè)數(shù)據(jù)庫(kù),這個(gè)用戶自動(dòng)繼承所有數(shù)據(jù)庫(kù)的權(quán)限。
        一些特定的服務(wù)器端命令也只能從這個(gè)數(shù)據(jù)庫(kù)運(yùn)行,比如列出所有的數(shù)據(jù)庫(kù)或者關(guān)閉服務(wù)器。

      • local:
        這個(gè)數(shù)據(jù)永遠(yuǎn)不會(huì)被復(fù)制,可以用來(lái)存儲(chǔ)限于本地單臺(tái)服務(wù)器的任意集合

    • config:
      當(dāng)Mongo用于分片設(shè)置時(shí),config數(shù)據(jù)庫(kù)在內(nèi)部使用,用于保存分片的相關(guān)信息。

  • 文檔
    • 文檔是一個(gè)鍵值(key-value)對(duì)(即BSON)。
    • 可以把文檔 當(dāng)作關(guān)系型數(shù)據(jù)庫(kù)的行 一個(gè)文檔 就是一行數(shù)據(jù)。
    • MongoDB 的文檔不需要設(shè)置相同的字段,并且相同的字段不需要相同的數(shù)據(jù)類型,這與關(guān)系型數(shù)據(jù)庫(kù)有很大的區(qū)別,也是 MongoDB 非常突出的特點(diǎn)。
    • 需要注意的是:
      • 文檔中的鍵/值對(duì)是有序的。
      • 文檔中的值不僅可以是在雙引號(hào)里面的字符串,還可以是其他幾種數(shù)據(jù)類型(甚至可以是整個(gè)嵌入的文檔)。
      • MongoDB區(qū)分類型和大小寫。
      • MongoDB的文檔不能有重復(fù)的鍵。
      • 文檔的鍵是字符串。除了少數(shù)例外情況,鍵可以使用任意UTF-8字符。
    • 文檔鍵命名規(guī)范:
      • 鍵不能含有\(zhòng)0 (空字符)。這個(gè)字符用來(lái)表示鍵的結(jié)尾。
      • .和$有特別的意義,只有在特定環(huán)境下才能使用。
      • 以下劃線"_"開頭的鍵是保留的(不是嚴(yán)格要求的)。
  • 集合
    • 集合就是 MongoDB 文檔組,類似于 RDBMS (關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng):Relational Database Management System)中的表格。

    • 集合存在于數(shù)據(jù)庫(kù)中,集合沒(méi)有固定的結(jié)構(gòu),這意味著你在對(duì)集合可以插入不同格式和類型的數(shù)據(jù),但通常情況下我們插入集合的數(shù)據(jù)都會(huì)有一定的關(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ù)谝粋€(gè)文檔插入時(shí),集合就會(huì)被創(chuàng)建。

  • 合法的集合名
    • 集合名不能是空字符串""。
    • 集合名不能含有\(zhòng)0字符(空字符),這個(gè)字符表示集合名的結(jié)尾。
    • 集合名不能以"system."開頭,這是為系統(tǒng)集合保留的前綴。
    • 用戶創(chuàng)建的集合名字不能含有保留字符。有些驅(qū)動(dòng)程序的確支持在集合名里面包含,這是因?yàn)槟承┫到y(tǒng)生成的集合中包含該字符。
    • 除非你要訪問(wèn)這種系統(tǒng)創(chuàng)建的集合,否則千萬(wàn)不要在名字里出現(xiàn)$。
    • 如下實(shí)例:
    db.col.findOne()
    
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容