MongoDB 是一款NoSql數據庫,沒有固定的模式,即同一個集合中的不同文檔結構可以不同,如:第一條記錄{name:”xiaoming”},第二條記錄:{name:”xiaoli”,age:15},這在關係型數據庫中是無法實現的。對於MongoDB,其中:collections即集合相當於關係型數據庫的表,document文檔相當於關係型數據庫中的行。因此也就是說,MongoDB中的表中存儲的數據可以不規定類型等。下面看一下MongoDB自帶shell客戶端的一些基本操作。
先來看一下,如何打開客戶端shell。
如果將MongoDB配置進系統的環境變量,則直接在命令行輸入即可:
mongo
若沒有配置環境變量,則需要在對應目錄中執行命令,如我本機裝在D:\MongoDB,則在命令行輸入下面命令即可:
D:\MongoDB\Server\3.0\bin\mongo
出現如下圖,則正常啓動,並連接test數據庫:
下面來看一些簡單的shell操作。
shell基本操作
- 查看所有的數據庫
show dbs
如圖:
- 創建一個數據庫
use [database] (注:此時若不做其他操作直接退出,則MongoDB會刪除該數據庫)
如圖:
- 給指定數據庫添加集合並添加文檔記錄
db.[collectionName].insert({...})
其中:db代表當前數據庫
例如:向sample數據庫中添加集合sample並插入文檔記錄{name:”sample1”}:
db.sample.insert({name:"sample1"})
如圖:
- 查看數據庫中所有的集合collection
show collections
如圖:
從圖中可以看出,我們添加了一個集合,插入了一條記錄,數據庫卻有2個集合,通過查看內容,可以看出,system.indexes集合是爲了sample集合添加主鍵_id和索引等,而sample集合是真正我們添加的集合。
- 查詢指定集合的數據
db.[collection].find() --查詢全部文檔記錄
db.[collection].findOne() --查詢第一條文檔記錄
這裏,我們再插入幾條文檔記錄到sample集合中,查詢所有:
db.sample.find()
結果如圖:
查詢第一條文檔:
db.sample.findOne()
結果如圖:
- 更新文檔數據
db.[collection].update({查詢條件},{$set:{更新內容}})
例如:
db.sample.update({name:"sample3"},{$set:{name:"samplenew"}})
這裏$set相當於一個設置器,更新器的存在,更新及查詢結果如下圖:
- 刪除集合中的數據
db.[collection].remove({刪除條件})
如:
db.sample.remove({age:25})
刪除結果如圖:
- 刪除數據庫中的集合
db.[collection].drop()
我們來刪除sample集合:
db.sample.drop()
- 刪除數據庫
db.dropDatabase()
MongoDB的客戶端shell基本操作就介紹這些,更多的命令可以查看MongoDB官方文檔或者shell的help。