MongoDB的一些基本操作
說明:文章所有內容均截選自實驗樓教程【MongoDB 基礎教程】,感興趣的點擊教程即可學習完整教程~
涉及知識點:
- MongoDB 概念
- 資料庫基本操作
- 集合基本操作
一、 MongoDB簡介
MongoDB 是一個介於關係資料庫和非關係資料庫之間的產品,是非關係資料庫當中功能最豐富,最像關係資料庫的。它支持的數據結構非常鬆散,是類似 json 的 bson 格式,因此可以存儲比較複雜的數據類型。
1 面向集合的存儲
在 MongoDB 中,一個資料庫包含多個集合,類似於 MySQL 中一個資料庫包含多個表;一個集合包含多個文檔,類似於 MySQL 中一個表包含多條數據。
2 虛擬機開機配置
啟動 MongoDB 服務,因為 MongoDB 並不隨系統一起啟動,可能以下命令運行後會等一小段的時間才會啟動完畢。
$ sudo service mongodb startn
進入 MongoDB 命令行操作界面(可能會出現 connect failed,多試幾次就行),在命令行中敲exit可以退出。
$ mongon
實驗中的布爾類型的 ture 用1代替,false 用0代替。
二、基本概念
1 資料庫
- 一個 MongoDB 可以創建多個資料庫
- 使用 show dbs 可以查看所有資料庫的列表
- 執行 db 命令則可以查看當前資料庫對象或者集合
- 運行 use 命令可以連接到指定的資料庫
$ mongo #進入到mongo命令行n> use test #連接到test資料庫n
注意:資料庫名可以是任何字元,但是不能有空格、點號和$字元
2 文檔
文檔是 MongoDB 的核心,類似於 SQLite 資料庫(關係資料庫)中的每一行數據。多個鍵及其關聯的值放在一起就是文檔。在 Mongodb 中使用一種類 json 的 bson 存儲數據,bson 數據可以理解為在 json 的基礎上添加了一些 json 中沒有的數據類型。
例:
{"company":"Chenshi keji"}n
3 文檔的邏輯聯繫
假設有兩個文檔:
{n "name": "Tom Hanks",n "contact": "987654321",n "dob": "01-01-1991"n}#user文檔nn{n "building": "22 A, Indiana Apt",n "pincode": 123456,n "city": "chengdu",n "state": "sichuan"n}#address文檔n
關係1:嵌入式關係,把 address 文檔嵌入到 user 文檔中
{n "name": "Tom Hanks",n "contact": "987654321",n "dob": "01-01-1991",n "address":n [{n "building": "22 A, Indiana Apt",n "pincode": 123456,n "city": "chengdu",n "state": "sichuan"n },n {n "building": "170 A, Acropolis Apt",n "pincode": 456789,n "city": "beijing",n "state": "beijing"n }]n}#這就是嵌入式的關係n
關係2:引用式關係:將兩個文檔分開,通過引用文檔的_id欄位來建立關係
{n "contact": "987654321",n "dob": "01-01-1991",n "name": "Tom Benzamin",n "address_ids": [n ObjectId("52ffc4a5d85242602e000000") #對應address文檔的id欄位n ]n}#這就是引用式關係n
4 集合
集合就是一組文檔的組合,就相當於是關係資料庫中的表,在 MongoDB 中可以存儲不同的文檔結構的文檔。
例:{"company":"Chenshi keji"} {"people":"man","name":"peter"}n
上面兩個文檔就可以存儲在同一個集合中。
5 元數據
資料庫的信息存儲在集合中,他們統一使用系統的命名空間:DBNAME.system.*
DBNAME 可用 db 或資料庫名替代- DBNAME.system.namespaces :列出所有名字空間
- DBNAME.system.indexs :列出所有索引
- DBNAME.system.profile :列出資料庫概要信息
- DBNAME.system.users :列出訪問資料庫的用戶
- DBNAME.system.sources :列出伺服器信息
三、資料庫的創建和銷毀
1 創建資料庫
啟動服務後,進入 MongoDB 命令行操作界面:
$ mongon
使用 use 命令創建資料庫:
> use mydbn
查看當前連接的資料庫:
> dbn
查看所有的資料庫:
> show dbsn
列出的所有資料庫中看不到 mydb 或者顯示 mydb(empty) ,因為 mydb 為空,裡面沒有任何東西,MongoDB 不顯示或顯示 mydb(empty)。
2 銷毀資料庫
使用 db.dropDatabase() 銷毀資料庫:
> use localn switched to db localn> db.dropDatabase()n
查看所有的資料庫:
> show dbsn
四、集合(collection)的創建和刪除
1 創建集合
在資料庫 mydb 中創建一個集合
> use mydbnswitched to db mydbn> db.createCollection("users")n
查看創建的集合:
> show collectionsn
2 刪除集合
刪除集合的方法如下:(刪除 users 集合)
> show collectionsn> db.users.drop()n
查看是否刪除成功:
> show collectionsn
五、向集合中插入數據
1 使用 insert()
插入數據時,如果 users 集合沒有創建會自動創建。
> use mydbnswitched to db mydbn> db.users.insert([n... { name : "jam",n... email : "jam@qq.com"n... },n... { name : "tom",n... email : "tom@qq.com"n... }n... ])n
2 使用 save()
插入數據時,如果 users 集合沒有創建會自動創建。
> use mydb2nswitched to db mydb2n> db.users.save([n... { name : "jam",n... email : "jam@qq.com"n... },n... { name : "tom",n... email : "tom@qq.com"n... }n... ])n
總結
文章介紹了 MongoDB 和集合的基本操作,在 MongoDB 中使用一種類 json 的 bson 存儲數據,可以使用 use 創建和切換資料庫,show dbs 可以查看有哪些資料庫,dropDatabase 可以刪除資料庫,createCollection 可以創建集合,show collections 可以查看集合,insert() 和 save() 可以插入數據。
最後:
文章所有內容均截選自實驗樓教程【MongoDB 基礎教程】,該教程實驗列表如下:
如果你想完整的學習MongoDB ,點擊教程即可開始學習哦,實驗樓還配有專門的實驗環境,讓你可以在網頁操作學習MongoDB~
最後:
- 更多實戰教程,點擊這裡查看~
- 12條學習路徑,照著學習不迷茫~
推薦閱讀:
※設計的時候,如果去掉外鍵關聯,postgresql和mysql,哪個更有優勢?
※區塊鏈和分散式資料庫有什麼本質不同?
※一圖秒懂中國資料庫的40年發展簡史
※如何評價國產高性能存儲引擎 TerarkDB ?