MongoDB簡介

什麼是MongoDB

MongoDB 是一個跨平臺的,面向文檔的數據庫,是當前 NoSQL 數據庫產品中最熱
門的一種。它介於關係數據庫和非關係數據庫之間,是非關係數據庫當中功能最豐富,最
像關係數據庫的產品。它支持的數據結構非常鬆散,是類似 JSON 的 BSON 格式,因此可以
存儲比較複雜的數據類型。
​ MongoDB 的官方網站地址是:http://www.mongodb.org/

MongoDB特點

MongoDB 最大的特點是他支持的查詢語言非常強大,其語法有點類似於面向對象的查
詢語言,幾乎可以實現類似關係數據庫單表查詢的絕大部分功能,而且還支持對數據建
立索引。它是一個面向集合的,模式自由的文檔型數據庫。
具體特點總結如下:
(1)面向集合存儲,易於存儲對象類型的數據
(2)模式自由
(3)支持動態查詢
(4)支持完全索引,包含內部對象
(5)支持複製和故障恢復
(6)使用高效的二進制數據存儲,包括大型對象(如視頻等)
(7)自動處理碎片,以支持雲計算層次的擴展性
(8)支持 Python,PHP,Ruby,Java,C,C#,Javascript,Perl 及 C++語言的驅動程
序,社區中也提供了對 Erlang 及.NET 等平臺的驅動程序
(9) 文件存儲格式爲 BSON(一種 JSON 的擴展)

MongoDB體系結構

MongoDB 的邏輯結構是一種層次結構。主要由:
文檔(document)、集合(collection)、數據庫(database)這三部分組成的。邏輯結構是面
向用戶的,用戶使用 MongoDB 開發應用程序使用的就是邏輯結構。
(1)MongoDB 的文檔(document),相當於關係數據庫中的一行記錄。
(2)多個文檔組成一個集合(collection),相當於關係數據庫的表。
(3)多個集合(collection),邏輯上組織在一起,就是數據庫(database)。
(4)一個 MongoDB 實例支持多個數據庫(database)。
文檔(document)、集合(collection)、數據庫(database)的層次結構如下圖:
在這裏插入圖片描述
下表是MongoDB與MySQL數據庫邏輯結構概念的對比
在這裏插入圖片描述

數據類型

基本數據類型

  • null:用於表示空值或者不存在的字段,{“x”:null}

  • 布爾型:布爾類型有兩個值true和false,{“x”:true}

  • 數值:shell默認使用64爲浮點型數值。{“x”:3.14}或{“x”:3}。對於整型值,可以使用
    NumberInt(4字節符號整數)或NumberLong(8字節符號整數),
    {“x”:NumberInt(“3”)}{“x”:NumberLong(“3”)}

  • 字符串:UTF-8字符串都可以表示爲字符串類型的數據,{“x”:“呵呵”}

  • 日期:日期被存儲爲自新紀元依賴經過的毫秒數,不存儲時區,{“x”:new Date()}

  • 正則表達式:查詢時,使用正則表達式作爲限定條件,語法與JavaScript的正則表達式相
    同,{“x”😕[abc]/}

  • 數組:數據列表或數據集可以表示爲數組,{“x”: [“a“,“b”,”c”]}

  • 內嵌文檔:文檔可以嵌套其他文檔,被嵌套的文檔作爲值來處理,{“x”:{“y”:3 }}

  • 對象Id:對象id是一個12字節的字符串,是文檔的唯一標識,{“x”: objectId() }

  • 二進制數據:二進制數據是一個任意字節的字符串。它不能直接在shell中使用。如果要
    將非utf-字符保存到數據庫中,二進制數據是唯一的方式。

  • 代碼:查詢和文檔中可以包括任何JavaScript代碼,{“x”:function(){/…/}}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章