欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

一、Insert操作

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

1、單條插入


2、批量插入

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


二、Remove操作

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

三、Update操作

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

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


2、局部更新(修改器)

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

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


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


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


3、upsert操作

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


4、批量更新

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

四、瞬間完成

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

五、請(qǐng)求和連接

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

相關(guān)文章

  • Mongodb 刪除添加分片與非分片表維護(hù)

    Mongodb 刪除添加分片與非分片表維護(hù)

    MongoDB 是一個(gè)介于關(guān)系數(shù)據(jù)庫(kù)和非關(guān)系數(shù)據(jù)庫(kù)之間的產(chǎn)品,是非關(guān)系數(shù)據(jù)庫(kù)當(dāng)中功能最豐富,最像關(guān)系數(shù)據(jù)庫(kù)的。通過(guò)本文給大家介紹Mongodb 刪除添加分片與非分片表維護(hù)的相關(guān)知識(shí),對(duì)此文感興趣的朋友一起學(xué)習(xí)吧
    2016-01-01
  • MongoDB入門(mén)教程之聚合和游標(biāo)操作介紹

    MongoDB入門(mén)教程之聚合和游標(biāo)操作介紹

    這篇文章主要介紹了MongoDB入門(mén)教程之聚合和游標(biāo)操作介紹,聚合和游標(biāo)可以說(shuō)是MongoDB中的高級(jí)操作了,需要的朋友可以參考下
    2014-08-08
  • MongoDB插入數(shù)據(jù)的3種方法

    MongoDB插入數(shù)據(jù)的3種方法

    在MongoDB中,db.collection.insert()方法添加一個(gè)新文檔到集合中。另外,db.collection.update()方法和db.collection.save()方法也能通過(guò)upsert操作添加新文檔。upsert操作執(zhí)行更新現(xiàn)有文檔或者當(dāng)文檔不存在時(shí)插入一個(gè)新文檔。
    2014-05-05
  • springboot整合mongodb?changestream的示例代碼

    springboot整合mongodb?changestream的示例代碼

    Chang?Stream(變更記錄流)?是指collection(數(shù)據(jù)庫(kù)集合)的變更事件流,應(yīng)用程序通過(guò)db.collection.watch()這樣的命令可以獲得被監(jiān)聽(tīng)對(duì)象的實(shí)時(shí)變更,本文給大家介紹springboot整合mongodb?changestream的示例代碼,感興趣的朋友一起看看吧
    2022-02-02
  • mongodb本地連接失敗的問(wèn)題解決

    mongodb本地連接失敗的問(wèn)題解決

    本文主要介紹了mongodb本地連接失敗的問(wèn)題解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • MongoDB各種查詢(xún)操作詳解

    MongoDB各種查詢(xún)操作詳解

    這篇文章主要介紹了MongoDB各種查詢(xún)操作詳解,包括比較查詢(xún)、關(guān)聯(lián)查詢(xún)、數(shù)組查詢(xún)等,需要的朋友可以參考下
    2014-03-03
  • MongoDB aggregate 運(yùn)用篇個(gè)人總結(jié)

    MongoDB aggregate 運(yùn)用篇個(gè)人總結(jié)

    最近一直在用mongodb,有時(shí)候會(huì)需要用到統(tǒng)計(jì),在網(wǎng)上查了一些資料,最適合用的就是用aggregate,以下介紹一下自己運(yùn)用的心得
    2016-11-11
  • MongoDB數(shù)據(jù)庫(kù)簡(jiǎn)介與安裝方法

    MongoDB數(shù)據(jù)庫(kù)簡(jiǎn)介與安裝方法

    這篇文章介紹了MongoDB數(shù)據(jù)庫(kù)簡(jiǎn)介與安裝方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-03-03
  • MongoDB排序時(shí)內(nèi)存大小限制與創(chuàng)建索引的注意事項(xiàng)詳解

    MongoDB排序時(shí)內(nèi)存大小限制與創(chuàng)建索引的注意事項(xiàng)詳解

    在數(shù)據(jù)量超大的情形下,任何數(shù)據(jù)庫(kù)系統(tǒng)在創(chuàng)建索引時(shí)都是一個(gè)耗時(shí)的大工程,下面這篇文章主要給大家介紹了關(guān)于MongoDB排序時(shí)內(nèi)存大小限制與創(chuàng)建索引的注意事項(xiàng)的相關(guān)資料,需要的朋友可以參考下
    2022-05-05
  • MongoDB 語(yǔ)法使用小結(jié)

    MongoDB 語(yǔ)法使用小結(jié)

    MongoDB是一個(gè)介于關(guān)系數(shù)據(jù)庫(kù)和非關(guān)系數(shù)據(jù)庫(kù)之間的產(chǎn)品,是非關(guān)系數(shù)據(jù)庫(kù)當(dāng)中功能最豐富,最像關(guān)系數(shù)據(jù)庫(kù)的
    2011-10-10

最新評(píng)論