做網(wǎng)站那個(gè)公司網(wǎng)站建設(shè)公司官網(wǎng)
文章目錄
- MongoDB 是什么?
- MongoDB 和關(guān)系型數(shù)據(jù)庫 mysql 區(qū)別
- MongoDB 有 3 個(gè)數(shù)據(jù)庫分別是什么?
- MongoDB 中的數(shù)據(jù)類型
- MongoDB 適用業(yè)務(wù)場景
MongoDB 是什么?
mongodb 是屬于文檔型的非關(guān)系型數(shù)據(jù)庫,是開源、高性能、高可用、可擴(kuò)展的。其數(shù)據(jù)邏輯層次關(guān)系為文檔=>集合=>數(shù)據(jù)庫。在關(guān)系型數(shù)據(jù)庫中每一行的數(shù)據(jù)對(duì)應(yīng) mongodb 里是一個(gè)文檔。mongodb 的文檔是以 BSON(binary json)格式存儲(chǔ)的,其格式就是 json 格式。
- 集合
集合是一組文檔。集合相當(dāng)于關(guān)系數(shù)據(jù)庫中的表,但集合中的文檔長度可不同(集合中的文檔中的鍵值對(duì)個(gè)數(shù)可不同)、集合中文檔的 key 可不同。向集合中插入第一個(gè)文檔時(shí),集合會(huì)被自動(dòng)創(chuàng)建。 - 文檔
文檔是一組鍵值對(duì),用{ }表示,字段之間用逗號(hào)分隔。相當(dāng)于關(guān)系數(shù)據(jù)庫中的一行(一條記錄)。
- 文檔中的鍵值對(duì)是有序的
- 一個(gè)文檔中不能有重復(fù)的 key(對(duì)應(yīng)關(guān)系數(shù)據(jù)庫中的一條記錄)
- 以"_"開頭的 key 是保留的,有特殊含義。
- 字段
即一個(gè)鍵值對(duì),key 必須是 String 類型,value 可以是任意類型。
MongoDB 和關(guān)系型數(shù)據(jù)庫 mysql 區(qū)別
關(guān)系數(shù)據(jù)庫 | MongoDB |
---|---|
數(shù)據(jù)庫 database | 數(shù)據(jù)庫 database |
表格 table | 集合 collection |
行 row | 文檔 document |
列 column | 字段 field |
索引 index | 索引 index |
表聯(lián)合 table joins | 嵌入文檔 |
主鍵 primary | 主鍵 primary key 。MongoDB默認(rèn)主鍵為_id |
MongoDB 有 3 個(gè)數(shù)據(jù)庫分別是什么?
一個(gè) MongoDB 中可以建立多個(gè)數(shù)據(jù)庫,這些數(shù)據(jù)庫是相互獨(dú)立的,有自己的集合和權(quán)限。不同的數(shù)據(jù)庫使用不同的文件存儲(chǔ)(不存儲(chǔ)在一個(gè)文件中)。
MongoDB 默認(rèn)有 3 個(gè)數(shù)據(jù)庫:
- admin: 從權(quán)限的角度來看,這是"root"數(shù)據(jù)庫。將一個(gè)用戶添加到這個(gè)數(shù)據(jù)庫,這個(gè)用戶會(huì)自動(dòng)繼承所有數(shù)據(jù)庫的權(quán)限。一些特定的服務(wù)器端命令也只能在這個(gè)數(shù)據(jù)庫中運(yùn)行,比如列出所有的數(shù)據(jù)庫或者關(guān)閉服務(wù)器。
- local: 這個(gè)數(shù)據(jù)庫永遠(yuǎn)不會(huì)被復(fù)制,里面的數(shù)據(jù)都是本地的(不會(huì)復(fù)制到其他 MongoDB 服務(wù)器上),可以用來存儲(chǔ)限于本地單臺(tái)服務(wù)器的任意集合。
- config: 當(dāng) Mongo 用于分片設(shè)置時(shí),config 數(shù)據(jù)庫在內(nèi)部使用,用于保存分片的相關(guān)信息。
MongoDB 中的數(shù)據(jù)類型
- null
- false 和 true
- 數(shù)值
- UTF-8 字符串
- 日期 new Date()
- 正則表達(dá)式
- 數(shù)組
- 嵌套文檔
- 對(duì)象 ID ObjectId()
- 二進(jìn)制數(shù)據(jù)
- 代碼
MongoDB 適用業(yè)務(wù)場景
- 網(wǎng)站數(shù)據(jù):MongoDB 非常適合實(shí)時(shí)的插入,更新與查詢,并具備網(wǎng)站實(shí)時(shí)數(shù)據(jù)存儲(chǔ)所需的復(fù)制及高度伸縮性。
- 緩存:由于性能很高,MongoDB 也適合作為信息基礎(chǔ)設(shè)施的緩存層。在系統(tǒng)重啟之后, 由 MongoDB 搭建的持久化緩存層可以避免下層的數(shù)據(jù)源過載。
- 大尺寸,低價(jià)值的數(shù)據(jù):使用傳統(tǒng)的關(guān)系型數(shù)據(jù)庫存儲(chǔ)一些數(shù)據(jù)時(shí)可能會(huì)比較昂貴,在此之前,很多時(shí)候程序員往往會(huì)選擇傳統(tǒng)的文件進(jìn)行存儲(chǔ)
- 高伸縮性的場景:MongoDB 非常適合由數(shù)十或數(shù)百臺(tái)服務(wù)器組成的數(shù)據(jù)庫。MongoDB 的路線圖中已經(jīng)包含對(duì) MapReduce 引擎的內(nèi)置支持
- 用于對(duì)象及 JSON 數(shù)據(jù)的存儲(chǔ):MongoDB 的 BSON 數(shù)據(jù)格式非常適合文檔化格式的存儲(chǔ)及查詢.
歡迎java熱愛者了解文章,作者將會(huì)持續(xù)更新中,期待各位友友的關(guān)注和收藏。。。