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

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

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

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

定義

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

語法

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

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

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

行為

  • 自mongodb5.0開始,UPDATE操作按照字段名稱的字典順序更新字段。當(dāng)字段中包含數(shù)字時(shí),按照數(shù)字順序依次更新字段。當(dāng)然,對(duì)一個(gè)文檔的多個(gè)字段操作,是原子性的。
  • 當(dāng)在嵌入文檔數(shù)組類型的數(shù)組指定一個(gè)刪除條件時(shí),$pull操作符的刪除條件類似于集合中的文檔查詢條件一樣查詢出數(shù)組中的每一個(gè)文檔元素。
  • 當(dāng)指定刪除的值是數(shù)組時(shí),指定的數(shù)組必須嚴(yán)格等于刪除字段中數(shù)組元素,包括數(shù)組元素的順序。
  • 當(dāng)指定刪除的值是文檔時(shí),要求文檔中的字段和即將刪除元素文檔中的字段和值相同,字段順序可以不一致。
  • mongodb 5.0版本以后,向$pull傳入空表達(dá)式({ })時(shí),mongodb不再拋出錯(cuò)誤??毡磉_(dá)式不會(huì)修改字段值 ,也不會(huì)在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)建一個(gè)bulkWrite操作過程,完成下面幾個(gè)步驟

  • 向集合中插入數(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)容請(qǐng)搜索腳本之家以前的文章或繼續(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是一個(gè)介于關(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ū)別,要從集合中刪除所有文檔,請(qǐng)將空過濾器文檔傳遞{}給該?db.collection.deleteMany()方法,本文通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-08-08
  • MongoDB 入門指南

    MongoDB 入門指南

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

    MongoDB在Windows平臺(tái)的安裝及配置方法

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

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

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

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

    這篇文章主要給大家介紹了關(guān)于MongoDB賬戶密碼設(shè)置的相關(guān)資料,我們知道m(xù)ysql在安裝的時(shí)候需要我們?cè)O(shè)置一個(gè)數(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ù)會(huì)不定期更新補(bǔ)充
    2017-03-03
  • MongoDB?Shell常用基本操作命令詳解

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

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

最新評(píng)論

内乡县| 博罗县| 深圳市| 达孜县| 哈尔滨市| 威信县| 定襄县| 玉环县| 营山县| 岚皋县| 志丹县| 荃湾区| 延庆县| 宁河县| 高台县| 阿勒泰市| 靖远县| 昌吉市| 金昌市| 宁德市| 乌拉特后旗| 奉化市| 香港| 喀喇| 岐山县| 尼玛县| 临清市| 蒙城县| 汽车| 陕西省| 文安县| 从江县| 临朐县| 化隆| 昭平县| 保德县| 古田县| 新邵县| 嘉义市| 彰武县| 清新县|