MongoDB教程8-MongoDB建立和檢視資料庫
MongoDB將 BSON 文件(即資料記錄)儲存在集合中,資料庫包含文件集合。在 MongoDB 裡面存在資料庫的概念,但沒有模式,儲存資料的結構是 BSON 結構,只不過在進行一些資料處理的時候才會使用 MongoDB 自己的操作。
MongoDB 自帶了一個功能強大的JavaScriptShell,可以用於管理或操作 MongoDB。
MongoDB 資料庫初始安裝完成後,預設的資料庫是 test,學習時可以在預設 test 資料庫上進行各種練習操作。當然在實際的操作過程中需要建立很多例項,因此,使用者需要掌握自定義資料庫名稱的基本規則。
MongoDB 資料庫的命名規則
MongoDB 資料庫的命名要符合 UTF-8 標準的字串,同時要遵循下表所示的注意事項。
序號 | 注意事項 |
---|---|
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() [ ] // 查詢當前資料下所有的集合名稱, 這裡還是空集合
查詢當前資料下所有的集合名稱