MongoDB入門教程一[文檔與集合]

來源:互聯網
上載者:User

標籤:

MongoDB 是面向集合儲存的文檔型資料庫,其涉及到的基本概念與關係型資料庫相比有所不同。舉個例子,在關係型資料庫中,我們記錄一個訂單的資訊,通常是這樣設計表結構的:

設計一個訂單基本資料表和一個訂單明細表,1個訂單有N個訂單明細,這些訂單明細通過外部索引鍵關聯到訂單主表,所以要儲存一個訂單的資訊,需要“1+N”條記錄。在MongoDB中將訂單基本資料和該訂單的所有訂單明細資訊通過嵌套的json格式組織起來,儲存為1個文檔。也就是說在關係型資料庫中需要“1+N”條記錄儲存的資料,MongoDB儲存為1個類似Json的文檔。所以,關係型資料庫中的一條記錄(或1+N條記錄)基本相當於MongoDB的一個文檔。關係型資料庫中一個表格儲存體多條記錄,MongoDB中用一個“檔案夾”存放多個類似的文檔,並將這樣的“檔案夾”叫做集合。下面是MongoDB和關係型資料庫的概念比較:

MongoDB 關係型資料庫
Databse(資料庫) Databse(資料庫)
Collection(集合) Table(表)

Document(文檔)

Record/Row(記錄/行)

field(欄位)

Column(列)

Index(索引)

Index(索引)

embedded documents/reference
(內嵌文檔/引用)

table joins(表串連)

文檔是MongoDB最核心的概念,本質上是一種類JSON的BSON格式的資料。BSON是一種類JSON的二進位格式資料,它可以理解為在JSON基礎上添加了一些新的資料類型,包括日期、int32、int64等。BSON是由一組組索引值對組成,它具有輕量性、可遍曆性和高效性三個特徵。可遍曆性是MongoDB將BSON作為資料存放區的主要原因

 

使用MongoDB文檔時需要注意以下問題:

1.MongoDB中寫操作的原子性限制在文檔層級,對文檔的儲存、修改、刪除等都是原子操作;

由於MongoDB是弱事務性的,所以當需要保證資料完整性儲存時,可以利用文檔的原子性來保障。還是以上面訂單的例子來說,為防止MongoDB在儲存主訂單資訊和訂單明細時發生部分資料未儲存成功,可以將訂單主資訊和訂單明細儲存為一個文檔,這樣,要麼整體儲存成功,要麼整體失敗,就相當於實現了事務的效果。

2.單個文檔佔用的儲存空間不能超過16MB;

3.MongoDB會盡量保持文檔被插入時索引值對的順序,但是不嚴格保證。

 

文檔鍵(field)的命名需要注意以下幾點:

1._id是系統保留的關鍵字,它是預設的主鍵,該值在集合中必須唯一,且不可更改

2.鍵不能包含\0或Null 字元,這個字元用於表示鍵的結尾

3.不能以$開頭

4.不能包含.(點號)

5.鍵是區分大小寫且不能重複  例如:{foo:1,Foo:1}

 

集合的命名需要注意以下幾點:

1.集合名不能是Null 字元串("")

2.集合名不能含有\0字元(Null 字元),該字元表示集合名的結尾

3.集合名不能以"system."開頭,此首碼是系統本身保留的

4.集合名中不能包含$字元(註:可包含.

 

用命名空間組織集合:

類似於A檔案夾下面存放某文檔(或A檔案夾下面存放B檔案夾,然後B檔案夾下面存放某文檔),那麼獲得該文檔的路徑為:A/文檔(或A/B/文檔),將“/”替換為“.”,變為“A.B.文檔”,那麼“A.B.”就是該文檔的命名空間。

1.把資料庫名添加到集合名字前面,中間用點號串連,得到集合的完全限定名,就是命名空間,例如:命名空間 neighbor.blog。

2. 需要說明的是,點號還可以出現在集合名字中,例如:neighbor.blog.reviews  ,可以將reviews集合看作是blog集合的子集合。

3.使用子集合可以使我們更好的組織資料,使資料的結構更加清晰明了。

 

 

 

MongoDB入門教程一[文檔與集合]

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.