MongoDB 簡介

MongoDB是一個(gè)跨平臺(tái)的,面向文檔的數(shù)據(jù)庫,可提供高性能,高可用性和易擴(kuò)展性。MongoDB致力于收集和文檔的概念。

什么是MongoDB

MongoDB是一個(gè)數(shù)據(jù)庫程序,MongoDB用C ++語言編寫。

  • 免費(fèi) – 您無需為在應(yīng)用程序中使用它而付出任何代價(jià)。

  • 開源 – 開源是開放的,開源社區(qū)為MongoDB數(shù)據(jù)庫程序的開發(fā)做出了貢獻(xiàn)。

  • 跨平臺(tái) –  MongoDB構(gòu)建在一個(gè)平臺(tái)(例如Linux)上,并且可以在其他平臺(tái)(Windows,MacOS等)上運(yùn)行,而無需對(duì)代碼進(jìn)行任何修改。

  • 面向文檔 –  MongoDB以JSON形式存儲(chǔ)記錄(如文檔)。這樣做有很多優(yōu)點(diǎn)。一個(gè)顯著的優(yōu)點(diǎn)是,向數(shù)據(jù)庫添加新功能(關(guān)系數(shù)據(jù)庫中的列)不需要麻煩。

  • NoSQL(不僅是SQL) –  MongoDB使用基于文檔的數(shù)據(jù)庫,其中每個(gè)文檔都是具有復(fù)雜值的鍵。該文檔值可以包含多個(gè)鍵值對(duì)。

數(shù)據(jù)庫

數(shù)據(jù)庫是用于收集的物理容器。每個(gè)數(shù)據(jù)庫在文件系統(tǒng)上都有其自己的文件集。一臺(tái)MongoDB服務(wù)器通常具有多個(gè)數(shù)據(jù)庫。

集合

集合是一組MongoDB文檔。它等效于RDBMS表。集合存在于單個(gè)數(shù)據(jù)庫中。集合不強(qiáng)制執(zhí)行架構(gòu)。集合中的文檔可以具有不同的字段。通常,集合中的所有文檔都具有相似或相關(guān)的目的。

文檔

文檔是一組鍵值對(duì)。文檔具有動(dòng)態(tài)架構(gòu)。動(dòng)態(tài)模式意味著同一集合中的文檔不需要具有相同的字段或結(jié)構(gòu)集,并且集合文檔中的公共字段可以保存不同類型的數(shù)據(jù)。

下表顯示了RDBMS術(shù)語與MongoDB的關(guān)系。

關(guān)系數(shù)據(jù)庫管理系統(tǒng)MongoDB
數(shù)據(jù)庫數(shù)據(jù)庫
集合

元組/行

文檔
字段
表聯(lián)結(jié)嵌入式文檔
主鍵約束主鍵(MongoDB本身提供的默認(rèn)鍵_id)
數(shù)據(jù)庫服務(wù)器和客戶端
mysqld / Oraclemongod
mysql / sqlplusmongo

示例文檔

以下示例顯示了博客站點(diǎn)的文檔結(jié)構(gòu),它只是一個(gè)逗號(hào)分隔的鍵值對(duì)。

{
   _id: ObjectId(7df78ad8902c)
   title: 'MongoDB Overview', 
   description: 'MongoDB is no sql database',
   by: '基礎(chǔ)教程',
   url: '',
   tags: ['mongodb', 'database', 'NoSQL'],
   likes: 100, 
   comments: [	
      {
         user:'user1',
         message: 'My first comment',
         dateCreated: new Date(2011,1,20,2,15),
         like: 0 
      },
      {
         user:'user2',
         message: 'My second comments',
         dateCreated: new Date(2011,1,25,7,45),
         like: 5
      }
   ]
}

_id是一個(gè)12字節(jié)的十六進(jìn)制數(shù)字,它保證了每個(gè)文檔的唯一性。您可以在插入文檔時(shí)提供id。如果不提供,那么MongoDB會(huì)為每個(gè)文檔提供一個(gè)惟一的id。這12個(gè)字節(jié)的前4個(gè)字節(jié)用于當(dāng)前時(shí)間戳,接下來的3個(gè)字節(jié)用于機(jī)器id,接下來的2個(gè)字節(jié)用于MongoDB服務(wù)器的進(jìn)程id,剩下的3個(gè)字節(jié)是簡單的增量值。

丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清