麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 數據庫 > MongoDB > 正文

MongoDB數據庫插入、更新和刪除操作詳解

2020-10-29 18:54:34
字體:
來源:轉載
供稿:網友

一、Insert操作

Insert操作是MongoDB插入數據的基本方法,對目標集合使用Insert操作,會將該文檔添加到MongoDB并自動生成相應的ID鍵。文檔結構采用類似JSON的BSON格式。常見的插入操作主要有單條插入和批量插入兩種形式。插入時只是簡單地將文檔存入數據庫中,不進行額外的驗證,也不會執行代碼,所以不存在注入式攻擊的可能。

1、單條插入


2、批量插入

MongoDB對批量插入的支持是通過傳遞多個文檔組成的數組到數據庫來實現的。由于它插入數據是通過發送TCP請求的,這樣只需發送單個TCP請求,且數據庫無需處理大量的消息頭,減少插入時間。這種方式的批量插入一次只能將多個文檔插入到一個集合中,對于插入到多個集合可以循環調用Insert操作。


二、Remove操作

remove函數可以用來刪除數據,它能接受一個文檔作為可選參數,只有符合條件的文檔才會被刪除。刪除數據是永久性的,不能撤銷,也不能恢復,需要謹慎。刪除文檔需要清空整個集合,不如直接刪除集合快。

三、Update操作

update函數用于修改數據庫中的數據,它接收兩個參數,一個是查詢文檔,用來查找要更新的文檔,另一個是修改器文檔,用來描述對找到的文檔做哪些修改。更新操作是原子性的,如果多個更新同時發生,則所有的更新都會執行,但最后的更新是最終贏家。

1、整體更新(文檔替換)


2、局部更新(修改器)

 部分更新是通過原子的更新修改器實現的,使用修改器時除了”_id“的值不能改變,其他任何值都能改變。文檔替換是可以改變所有值的。

 $inc修改器:將指定屬性的值增加特定的步長,如果鍵不存在則創建它。


$set修改器:用來指定一個鍵的值,如果不存在則創建它。


$push:數組修改器,如果指定的鍵存在,則向已有的數組末尾加入一個元素,鍵不存在則會創建一個新的數組。


3、upsert操作

upsert操作具有saveOrUpdate的功能,如果沒有文檔符合更新條件,則以更新條件和更新文檔為基礎創建一個新的文檔。如果有符合更新條件的文檔,則正常更新。創建新文檔時會以條件文檔作為基礎,將修改器作用其之上。upsert操作是原子性的,高效的。


4、批量更新

批量更新只需將update的第4個參數設為true即可。

四、瞬間完成

上面的插入,刪除和更新操作都是瞬間完成的,它們不需要等待數據庫響應。這樣的實現可以獲取高性能,速度非常快,只會受客戶端發送速度和網絡速度的制約。但由于不會獲取服務器狀態,所以不能保證操作順利完成。這對于付費系統,安全性較高的系統是不可行的,此時對這些操作需要使用它們的安全版本。安全版本會在操作執行后立即運行getLastError命令,來檢查是否執行成功。如果失敗一般會拋出可捕獲的異常,然后我們可以在代碼中處理。

五、請求和連接

數據庫會為每個MongoDB數據庫連接創建一個隊列,存放這個連接的請求,客戶端新發送的請求會被放到隊列的末尾。只有隊列中的請求都執行完畢,后續的請求才會執行。即對于單個連接來說,請求都是順序執行不存在并發問題,所以它總能讀到自己寫的東西。但對于不同的連接就有可能出現讀取和寫入不一致的問題,在驅動程序使用連接池時要特別注意此行為。具體連接池信息可參考官網:MongoDB官網

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 一级精品 | 免费亚洲视频在线观看 | 国产精品视频在 | 成人三级电影在线 | 欧美激情综合网 | 蜜桃一本色道久久综合亚洲精品冫 | 一本一本久久a久久精品综合小说 | 免费在线观看一级片 | 久精品久久 | 成人毛片视频免费看 | 日产精品一区二区三区在线观看 | 久久精品视频亚洲 | 国产99精品 | 97中文 | 亚洲av一级毛片特黄大片 | 久久综合伊人 | 久久亚洲精品视频 | 黄色网电影 | 深夜视频福利 | 久久精品com| 欧美一级美国一级 | 日韩a毛片免费观看 | 性大片免费看 | 91久久国产露脸精品国产护士 | 精品国产一区二 | 一区二区三区视频在线观看 | 免费观看一级黄色片 | 欧美三级短视频 | 人人玩人人爽 | 毛片观看网址 | 美女很黄很黄免费的 | 久久精品久久精品国产大片 | 免费小毛片| 毛片在线视频观看 | www日韩大片 | 人人看人人舔 | av噜噜噜噜 | 一本色道久久综合狠狠躁篇适合什么人看 | 成av在线 | 5a级毛片 | 特级黄色影院 |