MongoDB中UPDATE操作$pullAll的方法
學(xué)習(xí)mongodb,體會(huì)mongodb的每一個(gè)使用細(xì)節(jié),歡迎閱讀威贊的文章。這是威贊發(fā)布的第70篇mongodb技術(shù)文章,歡迎瀏覽本專欄威贊發(fā)布的其他文章。如果您認(rèn)為我的文章對您有幫助或者解決您的問題,歡迎在文章下面點(diǎn)個(gè)贊,或者關(guān)注威贊。謝謝。
本篇文章是Mongodb的第70篇文章了?;仡^想想當(dāng)時(shí)寫第一篇文章的場景,為自己設(shè)定了一個(gè)宏大的目標(biāo),自己要寫100篇,寫200篇,把Mongodb官網(wǎng)上所有的知識(shí)點(diǎn)都按照自己的理解寫出來。其實(shí)中間有很多事情耽誤了進(jìn)度,或工作忙,或家庭事務(wù)繁忙,或有其他的想法志向。但在有時(shí)間的時(shí)候,依舊會(huì)打開官方文檔,打開編輯器,開始寫文檔。力爭每個(gè)文檔描述一個(gè)知識(shí)點(diǎn),把知識(shí)點(diǎn)都使用中文描述清楚。里面的每一個(gè)應(yīng)用例子都自己測試過,理解后再寫到文檔當(dāng)中。雖然進(jìn)度會(huì)比較緩慢,但保證了自己學(xué)習(xí)整理的同事,也將知識(shí)點(diǎn)清晰的呈現(xiàn)在每一個(gè)閱讀文檔的朋友。平時(shí)有跑步的習(xí)慣,也跑過2次馬拉松。寫作就和跑步一樣,平時(shí)有積累,后面才可以持續(xù)性的輸出。寫作當(dāng)中遇到的一些問題,瓶頸,就和跑步訓(xùn)練當(dāng)中遇到的傷病,瓶頸,或者馬拉松跑道上的撞墻一樣,努力堅(jiān)持,總可以到達(dá)終點(diǎn)。工作這么多年,一直在看書學(xué)習(xí),除了工作內(nèi)容以外,寫文檔的經(jīng)歷確實(shí)比較少?,F(xiàn)在趁著Mongodb知識(shí)點(diǎn)整理的機(jī)會(huì),把編寫文檔的技能提高起來,同時(shí)讓自己真正的開始積累起來?,F(xiàn)在這里是第70篇,距離100篇已經(jīng)不遠(yuǎn),期待后面的200篇,300篇。。。持續(xù)寫作,持續(xù)積累,加油?。?!
言歸正傳 ,本文介紹Mongodb UPDATE操作中的$pullAll, 用來從數(shù)組中刪除多個(gè)元素。
定義
與$pull有所不同,$pull操作通過指定一個(gè)查詢條件或單個(gè)值來刪除數(shù)組中的元素。 而$pullAll刪除所有在指定列表中的數(shù)組元素。按照UPDATE操作中按照下面的形式,使用$pullAll.
{$pullAll: {<field1>: [<value1>, <value2>,...]}}
刪除嵌套文檔或數(shù)組中的元素,使用點(diǎn)操作符。
行為
- 自mongodb5.0開始,UPDATE操作按照字段名稱的字典順序更新字段。當(dāng)字段中包含數(shù)字時(shí),按照數(shù)字順序依次更新字段。當(dāng)然,對一個(gè)文檔的多個(gè)字段操作,是原子性的。
- mongodb 5.0版本以后,向$pullAll傳入空表達(dá)式({ })時(shí),mongodb不再拋出錯(cuò)誤??毡磉_(dá)式不會(huì)修改字段值 ,也不會(huì)在oplog中,添加新的操作記錄。
- 當(dāng)用戶指定刪除文檔或數(shù)組時(shí),$pullAll操作僅刪除掉和指定文檔數(shù)組嚴(yán)格相等的元素,包括數(shù)組元素的順序。
應(yīng)用
創(chuàng)建survey集合
db.survey.insertOne({ _id:1, scores: [0,2,5,5,1,0] })
構(gòu)建數(shù)據(jù)更新語句,刪除scores字段中的0和5
db.survey.updateOne({_id:1},{$pullAll:{ scores: [0,5]}})
查詢更新結(jié)果
db.survey.find()
{
"_id": 1,
"scores": [
2,
1
]
}
到此這篇關(guān)于MongoDB中UPDATE操作$pullAll的文章就介紹到這了,更多相關(guān)MongoDB操作$pullAll內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
mongodb分片技術(shù)_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
這篇文章主要介紹了mongodb分片技術(shù),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-08-08MongoDB如何正確中斷正在創(chuàng)建的索引詳解
這篇文章主要給大家介紹了關(guān)于MongoDB如何正確中斷正在創(chuàng)建的索引的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12大數(shù)據(jù)環(huán)境下mongoDB為何要加索引淺析
這篇文章主要給大家介紹了關(guān)于大數(shù)據(jù)環(huán)境下mongoDB為何要加索引的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用mongoDB具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05使用Mongodb實(shí)現(xiàn)打卡簽到系統(tǒng)的實(shí)例代碼
這篇文章主要介紹了使用Mongodb實(shí)現(xiàn)打卡簽到系統(tǒng)的示例代碼,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-05-05MongoDB中自動(dòng)增長ID詳解(實(shí)現(xiàn)、應(yīng)用及優(yōu)化)
在MongoDB中,自動(dòng)增長的功能主要通過使用數(shù)據(jù)庫的ObjectId或自定義的序列來實(shí)現(xiàn),ObjectId是MongoDB默認(rèn)的主鍵類型,它是唯一的并且具有一定的排序特性,本文給大家介紹了MongoDB中自動(dòng)增長ID,需要的朋友可以參考下2024-06-06使用centos系統(tǒng)中的crontab命令對mongodb定時(shí)備份恢復(fù)
編寫centos腳本使用crontab命令對mongodb定時(shí)執(zhí)行備份與恢復(fù)操作,并刪除指定天數(shù)前的備份2018-03-03MongoDB聚合分組取第一條記錄的案例與實(shí)現(xiàn)方法
這篇文章主要給大家介紹了關(guān)于MongoDB聚合分組取第一條記錄的案例與實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-01-01