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

Mongodb在UPDATE操作中使用$pull的操作方法

 更新時間:2024年06月19日 10:49:13   作者:威贊  
在UPDATE中使用$pull操作符,刪除數(shù)組中的指定元素或刪除符合條件的數(shù)組元素,本文基于Mongodb的官方文檔,介紹使用$pull,?按照指定條件刪除數(shù)組中的元素,文中通過代碼示例介紹的非常詳細(xì),需要的朋友可以參考下

本文基于Mongodb的官方文檔,介紹使用$pull, 按照指定條件刪除數(shù)組中的元素。

定義

在UPDATE中使用$pull操作符,刪除數(shù)組中的指定元素或刪除符合條件的數(shù)組元素。

語法

在UPDATE操作中使用$pull操作符時,按照下面的語法。

{$pull: {<field1>: <value|condition>, <field2>: <value|condition>, ...}}

刪除嵌入文檔或數(shù)組當(dāng)中的數(shù)組元素時,需要使用點(diǎn)操作符。

行為

  • 自mongodb5.0開始,UPDATE操作按照字段名稱的字典順序更新字段。當(dāng)字段中包含數(shù)字時,按照數(shù)字順序依次更新字段。當(dāng)然,對一個文檔的多個字段操作,是原子性的。
  • 當(dāng)在嵌入文檔數(shù)組類型的數(shù)組指定一個刪除條件時,$pull操作符的刪除條件類似于集合中的文檔查詢條件一樣查詢出數(shù)組中的每一個文檔元素。
  • 當(dāng)指定刪除的值是數(shù)組時,指定的數(shù)組必須嚴(yán)格等于刪除字段中數(shù)組元素,包括數(shù)組元素的順序。
  • 當(dāng)指定刪除的值是文檔時,要求文檔中的字段和即將刪除元素文檔中的字段和值相同,字段順序可以不一致。
  • mongodb 5.0版本以后,向$pull傳入空表達(dá)式({ })時,mongodb不再拋出錯誤。空表達(dá)式不會修改字段值 ,也不會在oplog中,添加新的操作記錄。

應(yīng)用

刪除數(shù)組當(dāng)中與指定值相等的元素

創(chuàng)建stores集合

db.stores.insertMany([
    {
        _id:1, 
        fruits: ["apples", "pears", "oranges", "grapes", "bananas"],
        vegetables: ["carrots", "celery", "squash", "carrots"]
    },
    {
        _id:2, 
        fruits: ["plums", "kiwis", "oranges", "bananas", "apples"],
        vegetables: ["broccoli", "zucchini", "carrots", "onions"]
    }
    ])

構(gòu)建數(shù)據(jù)更新語句,刪除fruits數(shù)組中的元素"apples", "oranges",刪除vegetables數(shù)組中的元素"carrots"

db.stores.updateMany({},{$pull:{fruits:{$in: ["apples", "oranges"]}, vegetables: "carrots"}})

查詢數(shù)據(jù)更新后的結(jié)果

刪除數(shù)組中符合查詢條件的元素

創(chuàng)建集合profile,其中votes是數(shù)組類型字段

db.profile.insertOne({_id: 1, votes:[3,5,6,7,7,8]})

構(gòu)建數(shù)據(jù)更新語句,刪除votes字段中大于等于6的數(shù)據(jù)。

db.profile.updateOne({_id: 1}, {$pull: {votes: {$gte: 6}}})

查詢操作結(jié)果

使用bulkWrite()方法完成數(shù)組元素刪除操作

構(gòu)建一個bulkWrite操作過程,完成下面幾個步驟

  • 向集合中插入數(shù)據(jù),其中字段votes是數(shù)組字段
  • 更新插入的數(shù)據(jù),刪除大于等于6的元素
  • 更新插入的數(shù)據(jù),刪除小于等于3的元素
try{
   db.profileBulkWrite.bulkWrite([
       {
           insertOne: {
               "document": {_id: 1, votes: [3,5,6,7,7,8]}
           }
       },
       {
           updateOne: {
               "filter": {_id: 1},
               "update": {$pull: {votes: {$gte: 6}}}
           }
       },
       {
           updateOne: {
               "filter": {_id: 1},
               "update": {$pull: {votes: {$lte: 3}}}
           }
       }
       ])
} catch (error){
    print(error)
}

查詢bulkWrite()操作結(jié)果

db.profileBulkWrite.find()

刪除數(shù)組中的文檔

創(chuàng)建survey并插入數(shù)據(jù),其中results字段是文檔數(shù)組類型

db.survey.insertMany([
    {_id: 1, results: [{item: "A", score: 5}, {item: "B", score: 8}]},
    {_id: 2, results: [{item: "C", score: 8}, {item: "B", score: 4}]}
])

構(gòu)架數(shù)據(jù)更新語句,刪除results數(shù)組中score字段是8,item字段是B的文檔。

db.survey.updateMany({},{$pull: {results: {score: 8, item: "B"}}})

刪除嵌套數(shù)組中的文檔

創(chuàng)建survey文檔并插入數(shù)據(jù)

db.survey.insertMany([
    {_id: 1, results: [
        {item: "A", score: 5, answers:[{q:1, a:4}, {q:2, a:6}]}, 
        {item: "B", score: 8, answers:[{q:1, a:8}, {q:2, a:9}]}
    ]},
    {_id: 2, results: [
        {item: "C", score: 8, answers:[{q:1, a:8}, {q:2, a:7}]}, 
        {item: "B", score: 4, answers:[{q:1, a:0}, {q:2, a:8}]}
    ]}
])

構(gòu)建數(shù)據(jù)更新語句,將包含q的值為2, a的值大于等于8的文檔從results數(shù)組中刪除

db.survey.updateMany({},{ $pull: { "results": {
    answers: {
        $elemMatch: {
            q: 2,
            a: { $gte: 8 }
        }
    }
} } })

到此這篇關(guān)于Mongodb在UPDATE操作中使用$pull的操作方法的文章就介紹到這了,更多相關(guān)Mongodb使用$pull操作內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MongoDB數(shù)據(jù)庫基礎(chǔ)操作總結(jié)

    MongoDB數(shù)據(jù)庫基礎(chǔ)操作總結(jié)

    這篇文章主要介紹了MongoDB數(shù)據(jù)庫基礎(chǔ)操作,結(jié)合實(shí)例形式總結(jié)分析了MongoDB數(shù)據(jù)庫創(chuàng)建、刪除、集合、文檔等基本操作技巧,需要的朋友可以參考下
    2020-06-06
  • mongodb在windows下的安裝步驟分享

    mongodb在windows下的安裝步驟分享

    MongoDB是一個介于關(guān)系數(shù)據(jù)庫和非關(guān)系數(shù)據(jù)庫之間的產(chǎn)品,是非關(guān)系數(shù)據(jù)庫當(dāng)中功能最豐富,最像關(guān)系數(shù)據(jù)庫的
    2011-10-10
  • Mongodb?刪除文檔Delete與Remove的區(qū)別解析

    Mongodb?刪除文檔Delete與Remove的區(qū)別解析

    這篇文章主要介紹了Mongodb?刪除文檔Delete與Remove的區(qū)別,要從集合中刪除所有文檔,請將空過濾器文檔傳遞{}給該?db.collection.deleteMany()方法,本文通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-08-08
  • MongoDB 入門指南

    MongoDB 入門指南

    這篇文章主要介紹了MongoDB 入門指南的相關(guān)資料,需要的朋友可以參考下
    2022-12-12
  • MongoDB在Windows平臺的安裝及配置方法

    MongoDB在Windows平臺的安裝及配置方法

    這篇文章主要介紹了MongoDB在Windows平臺的安裝及配置方法,簡單分析了MongoDB的下載、設(shè)置方法、操作命令等具體步驟與相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2017-04-04
  • Linux服務(wù)器下MariaDB 10自動化安裝部署

    Linux服務(wù)器下MariaDB 10自動化安裝部署

    這篇文章主要介紹了Linux服務(wù)器下MariaDB 10自動化安裝部署,需要的朋友可以參考下
    2016-08-08
  • MongoDB賬戶密碼設(shè)置的方法詳解

    MongoDB賬戶密碼設(shè)置的方法詳解

    這篇文章主要給大家介紹了關(guān)于MongoDB賬戶密碼設(shè)置的相關(guān)資料,我們知道m(xù)ysql在安裝的時候需要我們設(shè)置一個數(shù)據(jù)庫默認(rèn)的用戶名和密碼,mongodb也不例外,需要的朋友可以參考下
    2023-09-09
  • MongoDB學(xué)習(xí)筆記之GridFS使用介紹

    MongoDB學(xué)習(xí)筆記之GridFS使用介紹

    這篇文章主要介紹了MongoDB學(xué)習(xí)筆記之GridFS使用介紹,本文介紹了GridFS的作用、GridFS的一些使用方法、GridFS實(shí)現(xiàn)原理及注意事項(xiàng)等,需要的朋友可以參考下
    2015-07-07
  • MongoDB使用小結(jié):一些不常見的經(jīng)驗(yàn)分享

    MongoDB使用小結(jié):一些不常見的經(jīng)驗(yàn)分享

    最近一年忙碌于數(shù)據(jù)處理相關(guān)的工作,跟MongoDB打交道極多,以下為實(shí)踐過程中的Q&A,后續(xù)會不定期更新補(bǔ)充
    2017-03-03
  • MongoDB?Shell常用基本操作命令詳解

    MongoDB?Shell常用基本操作命令詳解

    這篇文章主要為大家介紹了MongoDB?Shell常用基本操作命令詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12

最新評論

甘孜县| 德州市| 梓潼县| 万盛区| 吉木乃县| 南通市| 娱乐| 阳东县| 安泽县| 富民县| 铁岭市| 平度市| 永靖县| 哈尔滨市| 蒙城县| 英德市| 洪湖市| 阳泉市| 盐源县| 南投县| 新绛县| 昌黎县| 邳州市| 武胜县| 炉霍县| 顺平县| 琼中| 溆浦县| 开封县| 建始县| 呼和浩特市| 平武县| 通州区| 云安县| 敦化市| 平遥县| 陆丰市| 来凤县| 清新县| 大冶市| 石城县|