MongoDB簡介

月光男神發表於2018-09-05

一、什麼是MongoDB

  MongoDB是由C++編寫的,是一個基於分散式檔案儲存的開源資料庫系統

  在高負載的情況下,新增更多的節點,可以保證伺服器的效能

  MongoDB為web應用提供可擴充套件的高效能資料儲存解決方案

二、MongoDB特點 

  1、MongoDB提供了一個面向文件儲存,基本思路是將原來的“行”的概念換成了更加領過的“文件”模型,一條記錄可以表示非常複雜的層次關係
  2、MongoDB支援豐富的查詢表示式,查詢指令是json形式的標記,可以輕易查詢文件中巢狀的物件和列表
  3、非常容易擴充套件,擴充套件叢集后還可以實現叢集中的資料的負載均衡。
  4、MongoDB支援各種程式語言,比如python、Java、c++、c、php、c#、ruby、JavaScript等
  5、豐富的功能,包括索引、儲存JavaScript、聚合、固定集合、檔案儲存等功能
  6、方便管理,處理啟動資料庫服務以外,記過沒有其他什麼必要的操作。管理叢集只需要知道有哪個新增的節點即可,自動繼承和配置新節點

三、MongoDB概念

  在MongoDB中的基本概念是文件、集合、資料庫

  資料庫:

    *  一個MongoDB可以建立多個資料庫

    *  MongoDB的預設資料庫是‘db’,該資料庫在data目錄

    *  MongoDB的單個例項可以容納多個獨立資料庫,每一個資料庫都有自己集合和許可權,不同資料庫放在不同的檔案中

    資料庫命名規則:

    資料庫名可以是可以滿足以下條件的任意UTF-8字串

      -  不能是空字串(“”)

      -  不得含有‘ ’(空格)、$、/、和 .

      -  應該全部小寫

      -  最多64位元組

    有一些資料庫名是保留的,可以直接訪問這些有特殊作用的資料庫。

      admin:從許可權的角度看,這個是`root`資料庫。要是將一個使用者新增到這個資料庫,這個使用者自動繼承所有的資料庫的許可權。一些特定的伺服器命令也只能從這個資料庫執行,比如列出所有的資料庫或者關閉資料庫。

      local:這個資料永遠不會被複制,可以用來儲存限於本地單臺伺服器的任意集合

      config:當MongoDB用於分片設定時,config資料庫在內部使用,用於儲存分片的相關資訊。

  文件:

    文件相當於Mysql的資料行。文件是一組鍵值對(BSON)。MongoDB的文件不需要設定相同的欄位,並且相同欄位不需要相同的資料型別

    例如:{“name”:“月光男神”, “age”:“18”}

    注意:

      1、文件中的鍵值對是有序的

      2、文件中的值不僅可以是在雙引號的字串,還可以是其他資料型別

      3、MongoDB區分型別和大小寫

      4、MongoDB的文件不能有重複的鍵

      5、文件的鍵是字串,除了少數例外情況,鍵可以使用任意UTF-8字元

    文件鍵命名規範:

      1、鍵不能含有 (空字元)。這個字元用來表示鍵的結尾

      2、.和$有特別的意義,只有在特定環境下才能使用

      3、以”_”開頭的鍵是保留的

  集合

    集合相當於mysql中的表,集合存在於資料庫中,集合沒有固定結構,可以插入不同型別和格式的資料。

    集合命名規範:

      集合名不能是空字串。

      集合名不能含有 字元(空字元),這個字符集表示集合名的結尾。

      集合名不能以“system”開頭,這是為系統集合保留的字首

      使用者建立的集合的名字不能含有保留字元。千萬不要出現$。

 

相關文章