MongoDB之入門

來源:互聯網
上載者:User

一.術語說明

1.document是mongoDB中資料的基本單元,非常類似於關係型資料庫管理系統中的行(但是比行要複雜的多)。

2.collection可以看成是沒有模式的表。

3.mongoDB單個執行個體可以容納多個獨立的database,每一個都有自己的集合和許可權。

4.mongoDB內建簡潔但是功能強大的javascript shell,這個工具對於管理mongoDB執行個體和操作資料作用很大。

5.每個document都有一個特殊的鍵“_id”,他在文檔所處的集合中是唯一的。

二.document

1.document的key-value是有序的。例如:{“foo”:"3","greeting":"hello"}和{“greeting”:"hello","foo":"3"}是不同的。

2.key不能包含有\0(Null 字元串).和$有特殊的意義,_開頭的鍵是保留的。

3.mongoDB的document不能含有重複的key。

三.collection

1.collection就是一組文檔。mongoDB中的document類似於RDBMS中的行,那麼collection就是表。

2.無模式  

  也就是說一個collection中的document結構不一樣。同時可以是一個key-value,也可以有多個key-value組成的document。

Q:在這種情況下,既然一個collection中可以儲存各種各樣的document,哪還有必須要在實際的項目中,建立多個collection嗎?把所有的document放在一個collection中不就可以了?

A:(1)把各種各樣的document都混在一個collection中,不僅對開發人員來還是管理者來說都是噩夢。開發人員要麼確保每次執行查詢的時候只返回需要的種類,要麼讓執行查詢的應用程式來處理所有不同類型的文檔。如果查詢部落格還要剔除那些含有作者資料

(2)在一個集合裡面查詢特定的文檔在速度很不划算,分開做多個collection要快得多。

(3)把同種類型的文檔放在一個collection中,這樣資料會更加的集中。從只含有部落格文章的collection裡面查詢幾篇文章,會從比含有作者和文章資料的集合裡面要少消耗磁碟尋道操作。

(4)當建立索引的時候,文檔會有附加的結構(尤其是唯一索引的時候)。索引是按照集合來定義的,把同種類型的文檔放在同一個collection中,可以使索引更加的有效。

3.

集合名可以是滿足下列條件的任意UTF-8字串

集合名不能是Null 字元串“”

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

集合名不能以“system.”開頭,這是為系統集合保留的首碼。例如system.users這個集合儲存著資料庫的使用者資訊。

使用者建立的集合名字不能含有保留字元$.

子集合

組織集合的一種慣例使用"."字元分開的按命名空間劃分的子集合。例如,帶有部落格功能的應用可能包含兩個集合,分別是blog.posts和blog.authors.

這樣做的目的只是為了使組織圖更好些,也就是說blog這個集合(這雷根本就不需要存在)及其子集合沒有任何關係。

GridFS是一種儲存大檔案的協議,使用子集合來隱藏檔的中繼資料,這樣就與內容塊分開了。

Mongodb的web控制台通過子集合的方式將資料群組織在DBTOP部分

在Mongodb中使用子集合來組織資料是很好的方法。

4.資料庫

Mongodb中多個文檔組成集合,同樣多個集合可以組成資料庫。一個Mongodb執行個體可以承載多個資料庫。將一個應用的所有資料都儲存在同一個資料庫中的作法就很好。

和集合一樣,資料庫也通過名字來標識。

不能是Null 字元串("")

不能含有''(空格)、.、$、/、\和\0(Null 字元)

應全部小寫

最多64個位元組

要記住一點,資料庫名最終會變成檔案系統裡的檔案。

有一些資料庫名是保留的

admin

從許可權的角度來看,這是"root"資料庫

local

這個資料永遠不會被複製,可以用來儲存限於本地單台伺服器的任意集合

config

當Mongodb用於分區設定時,config資料庫在內部使用,用於儲存分區的相關資訊。

把資料庫的名字放到集合名前面,得到就是集合的全限定名,成為命名空間。命名空間的長度不得超過121位元組,在實際使用當中應該小於100位元組

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.