国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

MongoDB 更新文檔(更新數(shù)組對象中的元素)

這篇具有很好參考價值的文章主要介紹了MongoDB 更新文檔(更新數(shù)組對象中的元素)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

之前我們介紹了如何更新文檔,并簡單的介紹了更新文檔時可以使用選項進行指定當更新內(nèi)容不存在時,可以進行新增文檔。具體可以參考:

MongoDB 更新文檔(更新一條文檔)https://blog.csdn.net/m1729339749/article/details/129983304
最近遇到了一個需求,文檔中包含了一個數(shù)組對象,需要篩選數(shù)組對象中滿足條件的元素進行更新

一、準備數(shù)據(jù)

向批次中新增兩個批次的商品數(shù)據(jù)

db.batch.insertMany([
    { "_id": 1, "foods": [
          { "name": "蘋果", "total": "20" },
          { "name": "可口可樂", "total": "30" },
          { "name": "北京方便面", "total": "10" }  
      ] 
    },
    { "_id": 2, "foods": [
          { "name": "伊利純牛奶", "total": "5" },
          { "name": "可口可樂", "total": "20" },
          { "name": "營養(yǎng)快線", "total": "20" }  
      ] 
    },
]);

二、arrayFilters

語法:

db.collection.updateOne(
   <filter>,
   <update>,
   {
     upsert: <boolean>,
     writeConcern: <document>,
     collation: <document>,
     arrayFilters: [ <filterdocument1>, ... ],
     hint:  <document|string>        // Available starting in MongoDB 4.2.1
   }
)

其中arrayFilters用于過濾數(shù)組對象中的元素。

例子:找到營養(yǎng)快線的數(shù)量為20的元素,并將數(shù)量更新為30

(1)查詢營養(yǎng)快線的數(shù)量為20的文檔

db.batch.find(
    { 
        "foods.name": "營養(yǎng)快線", 
        "foods.total": "20" 
    }
)

查詢的結(jié)果如下:

{
	"_id" : 2,
	"foods" : [
		{
			"name" : "伊利純牛奶",
			"total" : "5"
		},
		{
			"name" : "可口可樂",
			"total" : "20"
		},
		{
			"name" : "營養(yǎng)快線",
			"total" : "20"
		}
	]
}

(2)對營養(yǎng)快線的數(shù)量進行修改

db.batch.updateOne(
    { 
        "foods.name": "營養(yǎng)快線", 
        "foods.total": "20" 
    }, 
    {
        "$set": { "foods.$[element].total": "30" }
    },
    {
        "arrayFilters": [
            { 
                "element.name": "營養(yǎng)快線", 
                "element.total": "20"
            }
        ]
    }
)

其中,

arrayFilters:代表的是對數(shù)組中的元素進行過濾,找到滿足條件的數(shù)組中的元素后執(zhí)行更新操作。

$[element]:代表的是過濾定位符,用于定位每一條數(shù)組元素。

執(zhí)行完操作后,數(shù)組中的元素會被修改,修改后的文檔如下:

{
	"_id" : 1,
	"foods" : [
		{
			"name" : "蘋果",
			"total" : "20"
		},
		{
			"name" : "可口可樂",
			"total" : "30"
		},
		{
			"name" : "北京方便面",
			"total" : "10"
		}
	]
}
{
	"_id" : 2,
	"foods" : [
		{
			"name" : "伊利純牛奶",
			"total" : "5"
		},
		{
			"name" : "可口可樂",
			"total" : "20"
		},
		{
			"name" : "營養(yǎng)快線",
			"total" : "30"
		}
	]
}

從文檔中可以看出,營養(yǎng)快線的數(shù)量被修改成了30文章來源地址http://www.zghlxwxcb.cn/news/detail-647353.html

到了這里,關(guān)于MongoDB 更新文檔(更新數(shù)組對象中的元素)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務器費用

相關(guān)文章

  • MongoDB-數(shù)據(jù)庫文檔操作(1)

    MongoDB-數(shù)據(jù)庫文檔操作(1)

    任務描述 文檔數(shù)據(jù)在 MongoDB 中的插入和更新。 相關(guān)知識 本文將向大家介紹文檔數(shù)據(jù)在 MongoDB 中的基本操作。 文檔的數(shù)據(jù)結(jié)構(gòu)和 JSON 基本一樣,所有存儲在集合中的數(shù)據(jù)都是 BSON 格式。BSON 是一種類 JSON 的一種二進制形式的存儲格式,簡稱: Binary JSON 。 本文將教你掌握:

    2024年01月17日
    瀏覽(24)
  • mongodb 數(shù)據(jù)庫管理(數(shù)據(jù)庫、集合、文檔)

    mongodb 數(shù)據(jù)庫管理(數(shù)據(jù)庫、集合、文檔)

    目錄 一、數(shù)據(jù)庫操作 1、創(chuàng)建數(shù)據(jù)庫 2、刪除數(shù)據(jù)庫 二、集合操作 1、創(chuàng)建集合 2、刪除集合 三、文檔操作 1、創(chuàng)建文檔 2、 插入文檔 3、查看文檔 4、更新文檔 1)update() 方法 2)replace() 方法 創(chuàng)建數(shù)據(jù)庫的語法格式如下: 如果數(shù)據(jù)庫不存在,則創(chuàng)建數(shù)據(jù)庫,否則切換到該數(shù)據(jù)

    2024年02月12日
    瀏覽(33)
  • 【文檔數(shù)據(jù)庫】ES和MongoDB的對比

    【文檔數(shù)據(jù)庫】ES和MongoDB的對比

    目錄 1.由文檔存儲牽出的問題 2.什么是MongoDB? 3.ES和MongoDB的對比 本文或者說關(guān)于mongodb的這個系列文章的源頭: 前面我們聊過了分布式鏈路追蹤系統(tǒng),在基于日志實現(xiàn)的分布式鏈路追蹤的方式seluth+zipkin中為了防止數(shù)據(jù)丟失,需要將數(shù)據(jù)持久化。我們給出的是持久化進mysql中的

    2024年01月19日
    瀏覽(14)
  • 【MongoDB】數(shù)據(jù)庫、集合、文檔常用CRUD命令

    【MongoDB】數(shù)據(jù)庫、集合、文檔常用CRUD命令

    目錄 一、數(shù)據(jù)庫操作 1、創(chuàng)建數(shù)據(jù)庫操作 2、查看當前有哪些數(shù)據(jù)庫 3、查看當前在使用哪個數(shù)據(jù)庫 4、刪除數(shù)據(jù)庫 二、集合操作 1、查看有哪些集合 2、刪除集合 3、創(chuàng)建集合 三、文檔基本操作 1、插入數(shù)據(jù) 2、查詢數(shù)據(jù) 3、刪除數(shù)據(jù) 4、修改數(shù)據(jù) 四、文檔分頁查詢 五、文檔其

    2024年02月13日
    瀏覽(21)
  • 通過Studio 3T對Mongodb進行 創(chuàng)建數(shù)據(jù)庫/集合 增刪查改集合文檔操作

    通過Studio 3T對Mongodb進行 創(chuàng)建數(shù)據(jù)庫/集合 增刪查改集合文檔操作

    首先 你需要安裝Studio 3T 以及啟動 Mongodb服務 具體可以參考我的文章 Studio 3T客戶端連接Mongodb數(shù)據(jù)庫服務 我們之前 通過 隨便輸切換是可以的 但除了這里能看到的 它們都僅存在于內(nèi)存 我們右鍵頂部菜單 選擇 添加數(shù)據(jù)庫/創(chuàng)建數(shù)據(jù)庫 這里 我們輸入數(shù)據(jù)庫名稱 然后 點擊OK 這樣

    2024年02月01日
    瀏覽(94)
  • 刪除數(shù)組中的指定元素或數(shù)組對象

    1.刪除數(shù)組中的某個指定元素 1)首先獲取元素下標,用indexOf()函數(shù)找到他的位置index,如果沒有找到這個元素那么index將會等于-1;如下為找到元素2的下標 var array = [1,2,3]; var index = array.indexOf(2); 2)使用splice進行移除,刪除第index位置的指定個數(shù)的元素,splice直接修改原數(shù)組,并

    2024年02月11日
    瀏覽(19)
  • js判斷對象數(shù)組中的元素是否存在重復

    ?1、使用? Array.some() ?方法和自定義比較函數(shù): 使用? Array.some() ?方法遍歷數(shù)組,對每個元素執(zhí)行自定義的比較函數(shù)。比較函數(shù)使用? Array.findIndex() ?方法來查找與當前元素相等且索引不同的元素,如果找到則表示存在重復元素。 2、使用? Set ?數(shù)據(jù)結(jié)構(gòu): 使用? Set ?數(shù)據(jù)結(jié)

    2024年02月13日
    瀏覽(97)
  • MongoDB實驗——在MongoDB集合中查找文檔

    MongoDB實驗——在MongoDB集合中查找文檔

    1.掌握在 MongoDB中查詢文檔操作 2.掌握查找單個文檔、多個文檔、使用查詢運算符根據(jù)字段值查找文檔,根據(jù)子文檔查找文檔的方法 MongoDB 支持多種復雜的查詢方式,能實現(xiàn)大多數(shù) T-SQL 功能,遠不是 Key-Value 之類的 NoSQL DB 所能比擬的。 Conditional Operator : $lt , $lte =, $gt , $gte = Con

    2024年02月10日
    瀏覽(20)
  • MongoDB文檔-進階使用-MongoDB索引-createindex()與dropindex()-在MongoDB中使用正則表達式來查找

    MongoDB文檔-進階使用-MongoDB索引-createindex()與dropindex()-在MongoDB中使用正則表達式來查找

    ?阿丹: ? ? ? ? 之前研究了MongoDB的基礎增刪改查。在學會基礎的數(shù)據(jù)庫增刪改查肯定是不夠的。這個時候就涉及到了數(shù)據(jù)庫搜索的時候的效率。需要提高數(shù)據(jù)的搜索效率。 ? ? ? ? 在所以數(shù)據(jù)庫中如果沒有數(shù)據(jù)索引的時候。如果需要查找到一些數(shù)據(jù)。都會去主動掃描所有

    2024年02月14日
    瀏覽(14)
  • 2. MongoDB分片集群架構(gòu)實戰(zhàn)-----MongoDB分片集群和多文檔事務詳解

    2. MongoDB分片集群架構(gòu)實戰(zhàn)-----MongoDB分片集群和多文檔事務詳解

    本文是按照自己的理解進行筆記總結(jié),如有不正確的地方,還望大佬多多指點糾正,勿噴。 課程內(nèi)容: 1.MongoDB分片集群架構(gòu)及其原理分析 2.MongoDB分片集群環(huán)境搭建 3.MongoDB分片策略和數(shù)據(jù)均衡詳解 4.寫事務之writeConcern實戰(zhàn) 5.讀事務之readPreferencereadConcern實戰(zhàn) 6.MongoDB多文檔事務

    2024年02月11日
    瀏覽(16)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包