通俗講解MongoDB數據庫、集合、文檔的概念

對于關系型數據庫,我們知道,數據庫中有多個表,數據表里有多行數據。而對于mongodb來說,則是數據庫里有多個集合,集合里由多個文檔。

數據庫

mongodb的數據庫概念和mysql的差不多,每個數據庫都可以設置獨立的權限。

首先,我們來看如何創建數據庫,MongoDB對于數據庫名稱也是有限制的,只能使用數字或字母,另外數據庫名稱是區分大小寫的,一般的,我們都會使用小寫的。另外,有一些關鍵字也是不可以使用的,如:admin、config、local等。

在MongoDB中,不需要顯示的創建數據庫,只需要選擇use dbName即可,當數據庫不存在的時候,會自動為我們創建。

>?use?huoying switched?to?db?huoying

當使用db命令時,會顯示當前使用的數據庫名。

>?db huoying

查看當前所有數據庫,使用show dbs;

>?show?dbs; admin????0.000GB config???0.000GB huoying??0.000GB local????0.000GB

集合

MongoDB的集合類似于Mysql中的表,集合是有多個文檔組成的。但集合不像表那樣有字段的限制,集合下面的文檔可以是各種各樣。比如,一個集合下面可能有下面兩種文檔:

{"name":"gwx",?"age"?:?30}, {"id":1,?"score":100}

雖然,集合對文檔是沒有限制的,但是為了數據管理的方便,我們一般都將相關文檔放在一個集合里。

創建集合,分為直接創建和隱式創建。

#?顯示的創建集合 >?db.createCollection('huoying') {?"ok"?:?1?}

隱式創建集合,直接創建文檔時,若集合不存在,會先創建集合

文檔

最后,我們來看看文檔。文檔的數據類型類似于php中的關聯數據、或JavaScript中的對象

注意,文檔是區分大小寫以及數據類型的。看下面例子:

#?下面兩個是不一樣的文檔,他們的數據類型不一樣 {"name":30} {"name":"30"}  #?下面兩個是不一樣的文檔,鍵名不一樣 {"name":30} {"NAME":30}

新增文檔

使用命令db.集合名.insertOne(文檔數據),可以向指定集合插入一篇文檔。若該集合不存在時,則會隱式創建該集合。

>?db.users.insertOne({"name":"gwx",?"age":29}) { ?"acknowledged"?:?true, ?"insertedId"?:?ObjectId("5f0cfdbb7688816db4d031bc") } >?db.users.find() {?"_id"?:?ObjectId("5f0cfdbb7688816db4d031bc"),?"name"?:?"gwx",?"age"?:?29?} >

修改文檔

使用update來更新文檔內容,update需要兩個參數,第一個是限定條件,用來查找指定的文檔,第二個是新文檔的內容。

>?db.users.update({name:"gwx"},?{name:"monkeyking",?age:500}) WriteResult({?"nMatched"?:?1,?"nUpserted"?:?0,?"nModified"?:?1?}) >?db.users.find() {?"_id"?:?ObjectId("5f0cfdbb7688816db4d031bc"),?"name"?:?"monkeyking",?"age"?:?500?}

刪除文檔

使用remove來刪除文檔

>?db.users.remove({age:500}) WriteResult({?"nRemoved"?:?1?})

? 版權聲明
THE END
喜歡就支持一下吧
點贊5 分享