1. 程式人生 > >MongoDB資料庫的基本操作命令以及和mysql進行比較

MongoDB資料庫的基本操作命令以及和mysql進行比較

今天我來談一下MongoDB的基本操作命令和與關係型資料庫mysql的對比。

(1)使用mysql資料庫顯示已經存在的資料庫,使用命令show databases,截圖如下:

使用MongoDB顯示已經存在的資料庫,使用命令show dbs,截圖如下:

對比:我感覺這兩種資料庫在顯示資料庫這邊沒有什麼區別。

(2)mysql建庫之後,並且還要use 資料庫名,截圖如下:

MongoDB建庫之後,不需要use,直接use 庫名,之前如果建好的話直接用就行了,沒有的話,那就新建一個,截圖入下:

對比:在建資料庫方面,MongoDB確實比mysql方便的多,但是MongoDB在首次的用時候確實難以適應,不過用慣了就好了。

(3)刪除資料庫命令,兩種差不多。在mysql中刪除資料庫用命令drop database 資料庫名,截圖如下:

而在MongoDB中,在刪除資料庫之前,必須使用use 資料庫名,然後再使用命令db.dropDatabase,截圖如下:

對比:in a word,MongoDB在刪除資料庫時比mysql要繁瑣,mysql一條命令就好,Mongo在刪除資料庫之前,必須要use一下所要刪除的資料庫,否則他刪除的是正在使用的資料庫。

(4)建表。在mysql裡面建表就一條命令,截圖如下:

而在MongoDB中,沒有表的概念,但有集合,在MongoDB裡面建立集合有兩種方式,一種是隱式建立,它是在建立集合的同時往集合裡面新增 資料,截圖如下:

還有一種時顯式建立,用到的命令是db.createCollections(),截圖如下:

對比:首先我先來說一下MongoDB的這兩種建立集合的方式,第一種隱式建立方式用的頻率會比較高一點。就兩種資料庫來說,關係型資料庫對錶的結構會比較苛刻一點,而非關係型資料庫則使用key-value的方式來建立,所以會比較任性一點。

(5)顯示一個數據庫中存在的表(集合)。在mysql資料庫中使用命令:show table,截圖如下:

MongoDB資料庫中使用show collections(),截圖如下:

對比:我自我感覺這兩種命令都差不多。

(6)在資料庫中插入資料。在mysql中插入一條資料,截圖如下:

MongoDB裡面插入資料,截圖如下:

而且MongoDB還支援js指令碼,可以在終端裡面使用js指令碼大批量的插入資料,截圖如下:

對比:兩種資料庫,通過插入操作更能把MongoDB的key-value特性顯示出來。

(7)顯示資料庫中表(集合)中的資料記錄。mysql資料庫中檢視資料使用命令select * from 表名,截圖如下:

MongoDB資料庫中檢視資料使用命令db.集合名字.find(),截圖如下:

MongoDB資料庫中檢視資料條數使用命令db.集合名字.find().count(),截圖如下:

對比:我感覺這兩個差不多。

8刪除資料。在mysql中刪除資料使用命令(delete from 表名)是刪除整張表的記錄。delete from 表名 where id=?是刪除特定的記錄,截圖如下:

MongoDB資料庫裡面,刪除記錄使用命令:db.集合名.remove({條件}),截圖如下:

對比:mysql是通過主鍵來進行刪除的。MongoDB是通過條件來刪除的。

9)接下來就是查詢了。在mysql資料庫一般都是通過逐漸來查詢的(當然沒有定義主鍵的話,會自動生成一個6位元組的ROWID),截圖如下:

MongoDB裡面進行查詢,使用命令:db.集合名.find({條件}),截圖如下:

當然天劍如果哦更多的話,匹配度會更大,查詢速度回更快,截圖如下:

對比:MongoDB的查詢有點像mysql裡面的非索引查詢,我感覺這樣的查詢效率會有點底,但是MongoDB裡面是有索引的。

10最後一個就是資料的修改更新了。在mysql資料庫裡面是通過id找到所在的那一條資料,然後在更改,截圖如下:

MongoDB資料庫裡面修改更新是這樣的,我先重新建一個集合,以便於更新效果的檢視,截圖如下:

然後我們在開始修改操作,先來示範一個錯誤的操作db.集合名.update({查詢條件},{更改的東西}),結果你就會發現,截圖如下:

你會發現第一條記錄和第二條記錄age是一樣的,但是為什麼只改了第一條資料的,其實正確的命令應該是這樣的db.集合名.update({查詢條件},{$set:{更改的東西}},1,1),我在這裡解釋一下,最後一個1是因為最後一個是從0開始的,要更改兩個,所以寫成1,截圖如下:

但是如果你更改的時候條件沒有,MongoDB又會自動的新增一條記錄,截圖如下:

可以看出原先沒有age=40這條記錄,所以更改之後,會自動的新增到總記錄裡面。

對比:MongoDB資料庫的更改條件比mysql的苛刻,要求的多。說實話,我有點不太習慣。