天天看點

MongoDB文檔和集合

1、文檔是mongodb最核心的概念,本質上是一種類josn的bson格式的資料。

bson是一種類json的二進制格式資料,它可以了解為在json基礎上添加了一些新的資料類型,包括日期、int32、int64等。

bson是由一組組鍵值對組成,它具有輕量性、可周遊性和高效性三個特征。可周遊性是mongodb将bson作為資料存儲的主要原因。

2、使用mongodb文檔時需要注意:

mongodb中寫操作的原子性限制在文檔級别,對文檔的儲存、修改、删除等都是原子操作。

單個文檔占用的存儲空間不能超過16mb

mongodb會盡量保持文檔被插入時鍵值對的順序。

3、文檔鍵的命名需要注意:

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

鍵不能包含<code>\0</code>或空字元,這個字元用于表示鍵的結尾。

不能用$開頭。

不能包含<code>.</code>(點号)。

鍵是區分大小寫的且不能重複的

4、集合

把一組相關的文檔放在一起組成了集合,如果将mongodb的一個文檔比喻成關系型資料庫中的一行,那麼一個集合就相當于一張表。

mongodb的集合是模式自由的,一個集合裡的文檔可以是各式各樣的。

5、集合命名需要注意:

集合名不能是空字元串

集合名不能含有<code>\0</code>字元(空字元),該字元表示集合名的結尾。

集合名不能以<code>"system."</code>開頭,此字首是系統本身保留的。

集合名中不能包含<code>$</code>字元(注:可包含<code>.</code>)

6、資料庫

多個文檔組成集合,多個集合組成資料庫。一個mongodb執行個體可以承載多個資料庫,每個資料庫都有獨立的權限,在磁盤上,不同資料庫也可放置在不同的檔案夾中(啟動時加directoryperdb選項)。

7、資料庫命名注意:

不能是空字元串

不能以$開頭

不能包含.(點号)和空字元串

資料庫名字區分大小寫(建議資料庫名全部使用小寫)

資料庫名長度最多64位元組

不能與系統保留的資料庫名字相同,比如:admin\local\config

8、命名空間

把資料庫名添加到集合名字前面,中間用點号連接配接,得到集合的完全限定名,就是命名空間,例如:jk.blog

需要說明的是點号可以出現在集合名字中,例如:jk.blog.posts、jk.blog.authors,可以将posts和authors集合看作是blog集合的子集合。

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