資料庫操作
選擇和建立資料庫
use articledb
都是用的是use,在這裡進行建立資料庫之後,再進行show dbs 檢視資料庫,會發現articledb這個資料庫并沒有出現,在這裡因為存儲機制的關系,這個資料庫還隻存在記憶體當中,當這個資料庫當中有一個集合的時候就會持久化磁盤當中,那個時候這個資料庫才可以看到這個資料庫。
檢視目前資料庫
使用db指令即可檢視。
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIiclRnblN2XjlGcjAzNfRHLGZkRGZkRfJ3bs92YsYTMfVmepNHL1UFVNp3YU9EMRpHW4Z0MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnL1gzMyETOyMTM1EDMxAjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
資料庫的删除
使用的是一個方法,db代表目前資料庫
測試如下
集合操作
集合建立
集合相當于關系資料庫當中的表
顯示建立
使用
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()方法進行查詢結果
在這裡不單單是可以插入一條資料,也可以插入多條資料,使用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進行查詢
集合删除
db + 集合名 + drop方法進行删除,在删除之後再進行檢視集合。
集合查詢
使用到一個find方法
在這個find方法當中也可以帶參數進行查詢,比如在前面建立的col_many集合當中查詢
db.col_many.find({title:"mongodb"})
db.col_many.find({title:"mongodb1"})
檢視結果
這裡還有一個fingOne()方法,隻會傳回一條資料
投影查詢
在關系資料庫當中就相當于子查詢某幾個字段,隻需要再後面加上參數,參數也是json的資料類型,
db.col_many.find({title:"mongodb"},{title:1})
db.col_many.find({title:"mongodb"},{title:1,_id:0})
_id是會預設顯示的,給後面加上
_id:0
就可以将其隐藏
資料更新
覆寫的修改,修改之後全部都會進行覆寫。
進行測試,可以看到資料直接進行了替換。
局部修改,為了解決這個問題,我們需要使用修改器$set來實作,指令如下:
檢視結果,會發現mongodb1的likes的值從100改成了101
批量修改:使用到一個新的參數
{multi:true}
資料删除
使用remove進行删除,remove當中可以添加參數
db.col.remove({"title":"mongodb1"})
删除title為mongodb1的這一條資料。
在這裡
db.col.remove({})
就表示删除所有資料。