1. 程式人生 > 實用技巧 >MongoDB教程9-MongoDB建立集合

MongoDB教程9-MongoDB建立集合

MongoDB將文件儲存在集合中。集合類似於關係資料庫中的表。如果集合不存在,則 MongoDB 會在第一次儲存該集合資料時建立該集合。

MongoDB 集合的命名規則

MongoDB 的集合就相當於MySQL的一個表 table,MySQL 列出的所有表都可以使用 show tables,MongoDB 可以使用 show collections 展示所有集合。

集合是一組文件,是無模式的,集合名稱要求符合 UTF-8 標準的字串,同時要遵循下表所示的注意事項。

MongoDB 集合命名的注意事項
序號注意事項
1 集合名不能是空串
2 不能含有空字元 \0
3 不能以“system.”開頭,這是系統集合保留的字首
4 集合名不能含保留字元“$”

對於分別部署在 Windows、Linux、UNIX 系統上的 MongoDB,集合的命名方式與資料庫命名方式一致。

建立集合

MongoDB 集合的建立有顯式和隱式兩種方法。

顯式建立集合可通過使用db.createCollection(name, options)方法來實現,引數 name 指要建立的集合名稱,options 是可選項,指定記憶體大小和索引等,下表描述 了 options 可使用的選項。

options 可以使用的選項
引數型別描述
capped Boolean (可選)如果為 true,則啟用封閉的集合。上限集合是固定大小的集合,它在達到其最大時自動覆蓋其最舊的條目。如果指定 true,則還需要指定 size 引數
size 數字 (可選)指定上限集合的最大大小(以位元組為單位)。如果 capped 為 true,那麼還需要指定此欄位的值
max 數字 (可選)指定上限集合中允許的最大文件數

注意:在插入文件時,MongoDB 首先檢查上限集合 size欄位的大小,然後檢查 max 欄位。

顯式建立集合的一個例子:

> use myDB
switched to db myDB
>
> show dbs
admin   0.000GB
config  0.000GB
local   0.000GB
>
> db.createCollection("myColl")  // 在myDB資料庫中建立集合 myColl
{ 
"ok" : 1 }

在 MongoDB 中,當插入文件時,如果集合不存在,則 MongoDB 會隱式地自動建立集合,方法如下:

> db.myColl2.insert({"name":"tom"})  // myColl2是集合名
WriteResult({ "nInserted" : 1 })
>
> show collections    // 檢視此時的所有集合
myColl
myColl2

可以看到顯示和隱式建立的集合...

之前提到過建立的資料庫如果沒有值的時候使用show dbs不會顯示, 現在myDB資料庫中已經有集合了, 再次檢視

> show dbs
admin   0.000GB
config  0.000GB
local   0.000GB
myDB    0.000GB

下面是帶有幾個關鍵引數的 createCollection() 的用法:

建立固定集合 myColl3,整個集合空間大小 6142800 KB, 文件最大個數為 10000 個。

> db.createCollection("myColl3", {capped:true, size:6142800, max:10000})
{ "ok" : 1 }
>
> show collections
myColl
myColl2
myColl3