1. 程式人生 > 實用技巧 >MongoDB教程8-MongoDB建立和檢視資料庫

MongoDB教程8-MongoDB建立和檢視資料庫

MongoDB將 BSON 文件(即資料記錄)儲存在集合中,資料庫包含文件集合。在 MongoDB 裡面存在資料庫的概念,但沒有模式,儲存資料的結構是 BSON 結構,只不過在進行一些資料處理的時候才會使用 MongoDB 自己的操作。

MongoDB 自帶了一個功能強大的JavaScriptShell,可以用於管理或操作 MongoDB。

MongoDB 資料庫初始安裝完成後,預設的資料庫是 test,學習時可以在預設 test 資料庫上進行各種練習操作。當然在實際的操作過程中需要建立很多例項,因此,使用者需要掌握自定義資料庫名稱的基本規則。

MongoDB 資料庫的命名規則

MongoDB 資料庫的命名要符合 UTF-8 標準的字串,同時要遵循下表所示的注意事項。

MongoDB 資料庫命名的注意事項
序號注意事項
1 不能是空串
2 不得含有 /、\、?、$、空格、空字元等,基本只能使用 ASCII 中的字母和數字
3 區分大小寫,建議全部小寫
4 名稱最多為 64 位元組
5 不得使用保留的資料庫名,如:admin、local、config

注意:資料庫最終會成為檔案,資料庫名就是檔案的名稱。

  • 由於資料庫名稱在 MongoDB 中不區分大小寫,因此資料庫名稱不能僅僅區別於字元。
  • 對於在 Windows 上執行的 MongoDB,資料庫名稱不能包含以下字元:/、\、“、$、*、< >、:、|、? 。
  • 對於在 UNIX 和 Linux 系統上執行的 MongoDB,資料庫名稱不能包含以下字元:/、\、。、"、$。
  • 雖然 UTF-8 可以提供很多國家的語言的命名格式,在 MongoDB 資料庫命名時也可以使用漢字作為資料庫名,但是最好儘量採用英文字母、數字、字元等為主的命名格式。

如下命名格式是正確的:myDB、my_NewDB、myDB12。

以下命名格式則不被 MongoDB 接受:.myDB、/123。

保留資料庫

MongoDB 系統保留的資料庫如表所示。

保留資料庫
庫名作用
admin 許可權資料庫,新增使用者到該資料庫中,該使用者會自動繼承資料庫的所有許可權
local 資料庫中的資料永遠不會被複制
config 分片時,config 資料庫在內部使用,儲存分子資訊
test 預設資料庫,可以用來做各種測試等

建立資料庫

MongoDB 使用 use 命令建立資料庫,如果資料庫不存在,MongoDB 會在第一次使用該資料庫時建立資料庫。如果資料庫已經存在則連線資料庫,然後可以在該資料庫進行各種操作。

> use myDB
switched to db myDB

檢視資料庫

MongoDB 使用 show 命令檢視當前資料庫列表,程式碼如下:

> show dbs
admin   0.000GB  //保留資料庫,admin
config  0.000GB  //保留資料庫,config
local   0.000GB  //保留資料庫,local

MongoDB 預設的資料庫為 test,如果沒有建立新的資料庫,集合將儲存在 test 資料庫中。如果自定義資料庫沒有插入記錄,則使用者在檢視資料庫時是不會顯示的,只有插入資料的資料庫才會顯示相應的資訊。所以這裡沒有顯示剛才建立的資料庫"myDB"

統計資料庫資訊

MongoDB 使用 stats() 方法檢視某個資料庫的具體統計資訊,注意對某個資料庫進行操作之前,一定要用 use 切換至資料庫,否則會出錯,程式碼如下:

> use test  //選擇執行的test資料庫
switched to db test  //use執行後返回的結果
> db.stats()  //統計資料資訊

        "db" : "test",  //資料庫名
        "collections" : 0,  //表示資料庫中的集合數 
        "views" : 0,
        "objects" : 0,  //文件數量(表示當前資料庫所有collection總共有多少行資料)
        "avgObjSize" : 0,  //平均每個文件的大小(表示每行資料是大小,是估計值, 單位是bytes)
        "dataSize" : 0,  //資料佔用空間大小,不包括索引,單位為位元組
        "storageSize" : 0,  //分配的儲存空間,當前資料庫佔有磁碟大小"numExtents" : 0,  //連續分配的資料塊
        "indexes" : 0,  //索引個數
        "indexSize" : 0,  //索引佔用磁碟空間大小
        "scaleFactor" : 1,
        "fileSize" : 0,  //物理儲存檔案的大小(當前資料庫預分配的檔案大小)
        "fsUsedSize" : 0,
        "fsTotalSize" : 0,
        "ok" : 1
}

刪除資料庫

MongoDB 使用 dropDatabase() 方法刪除資料庫,程式碼如下:

> use myDB
switched to db myDB
> db.dropDatabase()
{ "ok" : 1 }

檢視集合

MongoDB 使用 getCollectionNames() 方法查詢當前資料庫下的所有集合,程式碼如下:

> use test
switched to db test
> db.getCollectionNames()
[ ]  // 查詢當前資料下所有的集合名稱, 這裡還是空集合
查詢當前資料下所有的集合名稱