和我一起學(xué)MongoDB(一)MongoDB簡(jiǎn)介

NoSQL數(shù)據(jù)庫(kù)有哪些種類

  • 文檔型數(shù)據(jù)庫(kù)
    文檔型數(shù)據(jù)庫(kù)采用文檔的方式來(lái)存儲(chǔ)數(shù)據(jù),即將單個(gè)實(shí)體的所有數(shù)據(jù)都存在一個(gè)文檔中,而文檔存在于集合中。
    MongoDB
  • “鍵值對(duì)”(Key-Value)數(shù)據(jù)庫(kù)
    “鍵值對(duì)”數(shù)據(jù)庫(kù)主要是使用數(shù)據(jù)結(jié)構(gòu)中的鍵來(lái)查找特定的值
    優(yōu)點(diǎn):這類數(shù)據(jù)庫(kù)在存儲(chǔ)時(shí)不采用任何模式,因此極易添加數(shù)據(jù)
    缺點(diǎn):通過(guò)“鍵”和“值”一對(duì)一查找時(shí)性能較高,但只針對(duì)“值”來(lái)查找時(shí)性能會(huì)比較差
    Redis、Voldemort、Scalaris、Oracle Berkeley DB
  • 列存儲(chǔ)數(shù)據(jù)庫(kù)
    列存儲(chǔ)數(shù)據(jù)庫(kù)是以“列”為單位來(lái)存儲(chǔ)數(shù)據(jù)的。相對(duì)與行存儲(chǔ)的數(shù)據(jù)庫(kù),它更適合用于批量數(shù)據(jù)處理與實(shí)時(shí)數(shù)據(jù)查詢
    優(yōu)點(diǎn):同一列數(shù)據(jù)的格式相同,所以適合數(shù)據(jù)壓縮,也更善于處理大量數(shù)據(jù)的查詢與計(jì)算,切有利于分布式擴(kuò)展
    缺點(diǎn):不適合做實(shí)時(shí)的刪除或更新操作
    Sybase IQ、Vertica
  • 圖存儲(chǔ)數(shù)據(jù)庫(kù)
    圖存儲(chǔ)數(shù)據(jù)庫(kù),采用圖形理論來(lái)存儲(chǔ)尸體之間的關(guān)系信息,如社交關(guān)系網(wǎng)絡(luò)、族譜
    Neo4j、FlockDB、GraphDB

MongoDB簡(jiǎn)介

MongoDB有哪些特性

存儲(chǔ)結(jié)構(gòu)

  • MongoDB采用“集合”來(lái)存儲(chǔ)文檔數(shù)據(jù)
  • 文檔的存儲(chǔ)架構(gòu)是基于JSON改良的BSON
  • MongoDB可以存儲(chǔ)無(wú)模式的文檔,不需要事先定義數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)類型。
  • MongoDB能讓使用者根據(jù)應(yīng)用程序的存取需求來(lái)設(shè)置反正規(guī)化的數(shù)據(jù)結(jié)構(gòu),以加快查詢速度

數(shù)據(jù)查詢

  • 除了單表查詢功能,還支持強(qiáng)大的聚合計(jì)算(sum/avg/count/group等),以及大數(shù)據(jù)引擎中常見(jiàn)的映射和歸納(MapReduce)
  • MongoDB可以在特定的集合字段上添加索引,以提升查詢的性能
  • 支持多種程序語(yǔ)言操作

數(shù)據(jù)庫(kù)架構(gòu)

  • MongoDB集群具有副本集的架構(gòu),可以實(shí)現(xiàn)數(shù)據(jù)實(shí)時(shí)備援、故障轉(zhuǎn)移等,能確保服務(wù)不會(huì)長(zhǎng)時(shí)間中斷或發(fā)生數(shù)據(jù)丟失的情況
  • MongoDB支持?jǐn)?shù)據(jù)塊自動(dòng)切分,可以實(shí)現(xiàn)橫向擴(kuò)容、能保證數(shù)據(jù)存儲(chǔ)于王文的負(fù)載均衡。雖然數(shù)據(jù)是分布式存儲(chǔ)的,但對(duì)應(yīng)用程序來(lái)說(shuō),仍可以通過(guò)統(tǒng)一的路由來(lái)訪問(wèn)數(shù)據(jù)

MongoDB的使用場(chǎng)景

  • 需要處理大量的低價(jià)值數(shù)據(jù),且對(duì)數(shù)據(jù)處理性能有較高要求
  • 需要借助緩存層來(lái)處理數(shù)據(jù)
  • 需要高度的伸縮性

MongoDB中的對(duì)象

數(shù)據(jù)庫(kù) Database

默認(rèn)數(shù)據(jù)庫(kù)test,在使用use <databasename>時(shí),會(huì)切換到某個(gè)數(shù)據(jù)庫(kù),如果數(shù)據(jù)庫(kù)不存在,會(huì)自動(dòng)創(chuàng)建

集合 Collenction

MongoDB是面向集合的存儲(chǔ)。在儲(chǔ)存數(shù)據(jù)時(shí),MongoDB會(huì)使用集合在做分類,在集合中可以儲(chǔ)存許多文檔
集合對(duì)應(yīng)表(Table),不過(guò)集合不需要事先定義模式(Schema)

文檔 Document

文檔是MongoDB存儲(chǔ)數(shù)據(jù)的最基本單元,相當(dāng)于行(Row)。文檔內(nèi)包括一至多個(gè)“鍵值對(duì)”。每個(gè)“鍵”為一個(gè)字段(Field)。字段的值可以是數(shù)值,字符串,數(shù)組或者子文檔等

視圖 (View)

視圖與查詢集合的結(jié)果相同,但視圖并非實(shí)際存在的集合,而是通過(guò)指令來(lái)構(gòu)建數(shù)據(jù)查詢得出的結(jié)果。

索引(Index)

MongoDB索引的使用方法和原理都于傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù)的索引相同。MongoDB還支持地理空間索引,以提升查詢平面或球面坐標(biāo)的速度。

用戶(User)

如果MongoDB開(kāi)啟了安全認(rèn)證,在會(huì)在數(shù)據(jù)庫(kù)中產(chǎn)生用戶表。在MongoDB中,每個(gè)數(shù)據(jù)庫(kù)都有獨(dú)立的用戶表

存儲(chǔ)過(guò)程(Stored Procedure)

MongoDB的存儲(chǔ)過(guò)程是用JavaScript撰寫的,存儲(chǔ)在system.js集合中,具有輸入/輸出參數(shù)、嵌套調(diào)用等特性,可提供應(yīng)用程序調(diào)用

字段(Field)

字段是MongoDB文檔中的元素,相當(dāng)于關(guān)系型數(shù)據(jù)庫(kù)中的“列”(Column)。在MongoDB中,字段可以添加的增加或減少,不需要事先定義

MongoDB與關(guān)系型數(shù)據(jù)庫(kù)的術(shù)語(yǔ)對(duì)應(yīng)關(guān)系

MongoDB 關(guān)系型數(shù)據(jù)庫(kù)
database(數(shù)據(jù)庫(kù)) database(數(shù)據(jù)庫(kù))
collection(集合) table(表)
document(文檔) row(行)
field(字段) column(列)
View(視圖) View(視圖)
User(用戶) User(用戶)
Stored Procedure(預(yù)存程序) Stored Procedure(預(yù)存程序)
?著作權(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)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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