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 ?

TAG:MongoDB | 数据库 | 编程学习 |