最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MongoDB數(shù)據(jù)庫插入、更新和刪除操作詳解

 更新時間:2014年03月18日 12:03:04   作者:  
這篇文章主要介紹了MongoDB數(shù)據(jù)庫插入、更新和刪除操作詳解,需要的朋友可以參考下

一、Insert操作

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

1、單條插入


2、批量插入

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


二、Remove操作

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

三、Update操作

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

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


2、局部更新(修改器)

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

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


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


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


3、upsert操作

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


4、批量更新

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

四、瞬間完成

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

五、請求和連接

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

相關(guān)文章

  • MongoDB的下載、安裝與部署方法

    MongoDB的下載、安裝與部署方法

    這篇文章主要介紹了MongoDB的下載、安裝與部署方法,需要的朋友可以參考下
    2017-05-05
  • MongoDB 快速入門

    MongoDB 快速入門

    MongoDB 快速入門,想要學(xué)習(xí)MongoDB的朋友可以參考下。
    2011-10-10
  • mongoDB 多重數(shù)組查詢(AngularJS綁定顯示 nodejs)

    mongoDB 多重數(shù)組查詢(AngularJS綁定顯示 nodejs)

    這篇文章主要介紹了mongoDB 多重數(shù)組查詢(AngularJS綁定顯示 nodejs),需要的朋友可以參考下
    2017-06-06
  • 阿里云CentOS7安裝Mongodb教程

    阿里云CentOS7安裝Mongodb教程

    本文給大家介紹的教程主要參考資源的官方文檔,當(dāng)然如果你是centos6的,也可以看看其他文章,筆者用的是7,mongodb想用3以上的版本,需要的小伙伴可以參考下
    2016-11-11
  • mongose 模糊檢索實現(xiàn)方法示例詳解

    mongose 模糊檢索實現(xiàn)方法示例詳解

    這篇文章主要為大家介紹了mongose 模糊檢索實現(xiàn)方法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-08-08
  • MongoDB教程之?dāng)?shù)據(jù)操作實例

    MongoDB教程之?dāng)?shù)據(jù)操作實例

    這篇文章主要介紹了MongoDB教程之?dāng)?shù)據(jù)操作實例,本文講解了批量插入、數(shù)據(jù)庫清除、數(shù)據(jù)更新、修改器、數(shù)組修改器、upsert等內(nèi)容,需要的朋友可以參考下
    2015-05-05
  • MongoDB數(shù)據(jù)庫安裝部署及警告優(yōu)化

    MongoDB數(shù)據(jù)庫安裝部署及警告優(yōu)化

    大家好,本篇文章主要講的是MongoDB數(shù)據(jù)庫安裝部署及警告優(yōu)化,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • MongoDB遠程訪問配置步驟詳解

    MongoDB遠程訪問配置步驟詳解

    MongoDB遠程訪問相信很多人都要到這個需求,所以這篇文章給大家主要介紹了MongoDB遠程訪問配置的步驟,文中給出了詳細的步驟及示例代碼,相信對大家的理解和學(xué)習(xí)很有幫助,有需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧。
    2016-11-11
  • MongoDB中MapReduce的使用方法詳解

    MongoDB中MapReduce的使用方法詳解

    MapReduce應(yīng)該算是MongoDB操作中比較復(fù)雜的了,下面這篇文章主要給大家介紹了關(guān)于MongoDB中MapReduce使用的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考借鑒,下面隨著小編來一起看看吧。
    2017-12-12
  • MongoDB快速入門筆記(二)之MongoDB的概念及簡單操作

    MongoDB快速入門筆記(二)之MongoDB的概念及簡單操作

    MongoDB是面向集合的文檔式數(shù)據(jù)庫,不像關(guān)系數(shù)據(jù)庫那樣,有表,列、行,mongoDB數(shù)據(jù)庫則是由一系列的文檔組成。接下來通過本文給大家介紹MongoDB的概念及簡單操作,一起看看吧
    2016-06-06

最新評論

兰州市| 荆州市| 岳阳县| 太原市| 九台市| 万载县| 夏河县| 铁岭县| 江西省| 双鸭山市| 泗阳县| 湖州市| 高唐县| 海宁市| 博爱县| 遂川县| 集安市| 安国市| 册亨县| 东兴市| 云和县| 德庆县| 饶河县| 河北区| 阿坝| 东阳市| 广安市| 大石桥市| 额济纳旗| 图片| 茂名市| 永嘉县| 祁东县| 平凉市| 昌江| 渭源县| 新乐市| 四子王旗| 公安县| 叙永县| 通城县|