天天看點

MongoDB資料庫、集合操作(增删改查)

資料庫操作

選擇和建立資料庫

use articledb
           

都是用的是use,在這裡進行建立資料庫之後,再進行show dbs 檢視資料庫,會發現articledb這個資料庫并沒有出現,在這裡因為存儲機制的關系,這個資料庫還隻存在記憶體當中,當這個資料庫當中有一個集合的時候就會持久化磁盤當中,那個時候這個資料庫才可以看到這個資料庫。

檢視目前資料庫

使用db指令即可檢視。

MongoDB資料庫、集合操作(增删改查)

資料庫的删除

使用的是一個方法,db代表目前資料庫

測試如下

MongoDB資料庫、集合操作(增删改查)

集合操作

集合建立

集合相當于關系資料庫當中的表

顯示建立

使用

createCollection()

方法進行建立。

使用

show collections

即可檢視目前庫有多少條集合。

隐式建立

當向一個集合中插入一個文檔的時候,如果集合不存在,則會自動建立集合。

db.collection.insert(
<document or array of documents>,
	{
		writeConcern: <document>,
		ordered: <boolean>
	}
)
           

參數解析:

Parameter Type Description
document document or array 要插入到集合中的文檔或文檔數組。(json格式)
writeConcern document 插入的性能的級别等
ordered boolean 可選。如果為真,則按順序插入數組中的文檔,如果其中一個文檔出現錯誤,MongoDB将傳回而不處理數組中的其餘文檔。如果為假,則執行無序插入,如果其中-個文檔出現錯誤,則繼續處理數組中的主文檔。在版本2.6+中預設為true

進行測試,使用insert進行插入資料

使用find()方法進行查詢結果

MongoDB資料庫、集合操作(增删改查)

在這裡不單單是可以插入一條資料,也可以插入多條資料,使用insertMany()方法

db.col_many.insertMany([
	{title:"mongodb",description:"this is database",likes:100},	
	{title:"mongodb",description:"this is database",likes:100},
	{title:"mongodb",description:"this is database",likes:100}
	])
           

隻用同樣的使用find進行查詢

MongoDB資料庫、集合操作(增删改查)

集合删除

db + 集合名 + drop方法進行删除,在删除之後再進行檢視集合。

集合查詢

使用到一個find方法

在這個find方法當中也可以帶參數進行查詢,比如在前面建立的col_many集合當中查詢

db.col_many.find({title:"mongodb"})
db.col_many.find({title:"mongodb1"})
           

檢視結果

MongoDB資料庫、集合操作(增删改查)

這裡還有一個fingOne()方法,隻會傳回一條資料

MongoDB資料庫、集合操作(增删改查)

投影查詢

在關系資料庫當中就相當于子查詢某幾個字段,隻需要再後面加上參數,參數也是json的資料類型,

db.col_many.find({title:"mongodb"},{title:1})
db.col_many.find({title:"mongodb"},{title:1,_id:0})
           

_id是會預設顯示的,給後面加上

_id:0

就可以将其隐藏

MongoDB資料庫、集合操作(增删改查)

資料更新

覆寫的修改,修改之後全部都會進行覆寫。

進行測試,可以看到資料直接進行了替換。

MongoDB資料庫、集合操作(增删改查)

局部修改,為了解決這個問題,我們需要使用修改器$set來實作,指令如下:

檢視結果,會發現mongodb1的likes的值從100改成了101

MongoDB資料庫、集合操作(增删改查)

批量修改:使用到一個新的參數

{multi:true}

MongoDB資料庫、集合操作(增删改查)

資料删除

使用remove進行删除,remove當中可以添加參數

db.col.remove({"title":"mongodb1"})

删除title為mongodb1的這一條資料。

MongoDB資料庫、集合操作(增删改查)

在這裡

db.col.remove({})

就表示删除所有資料。