婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁(yè) > 知識(shí)庫(kù) > MongoDB如何更新多級(jí)文檔的數(shù)據(jù)

MongoDB如何更新多級(jí)文檔的數(shù)據(jù)

熱門標(biāo)簽:外呼線路資源屬于電信業(yè)務(wù)嗎 crm外呼系統(tǒng)聯(lián)系方式 智能外呼系統(tǒng)官網(wǎng) 內(nèi)蒙古營(yíng)銷智能外呼系統(tǒng)哪個(gè)好 青白江400企業(yè)電話申請(qǐng) 長(zhǎng)沙電銷外呼防封卡是什么 呼和浩特外呼系統(tǒng)原理是什么 小裙科技電銷機(jī)器人怎樣 河南電話外呼系統(tǒng)招商

嵌套數(shù)組更新

以下面的數(shù)據(jù)(數(shù)據(jù)集名稱為author)為例:

{name: '島上碼農(nóng)', documents: ['Flutter入門與實(shí)戰(zhàn)', '高性能MySQL', 'MongoDB專業(yè)指北']}

我們需要將 MongoDB專業(yè)指北改成MongoDB不專業(yè)指北,就屬于修改嵌套的文檔數(shù)據(jù)了。這個(gè)時(shí)候需要使用到 MongoDB 提供的定位操作符$。定位操作符即表示將對(duì)應(yīng)條件匹配到的數(shù)據(jù),如:

db.author.update(
  {name: '島上碼農(nóng)', documents: 'MongoDB專業(yè)指北'}, 
  {'$set': {'documents.$': 'MongoDB不專業(yè)指北'}}
);

對(duì)于下級(jí)節(jié)點(diǎn)為數(shù)組的也是一樣。

{
  name: '島上碼農(nóng)', 
  documents: [
    {name: 'Flutter入門與實(shí)戰(zhàn)', score: 80}, 
    {name: '高性能MySQL', score: 90}, 
    {name: 'MongoDB專業(yè)指北', score: 85}
  ]
}

需要將 documengs 節(jié)點(diǎn)的 name 和 score 進(jìn)行修改。

db.author.update(
  {name: '島上碼農(nóng)', 'documents.name': 'MongoDB專業(yè)指北'},
  {'$set': {
    	'documents.$.name': 'MongoDB不專業(yè)指北', 
    	'documents.$.score':88}
  }
);

$定位操作符即在查詢條件中找到的數(shù)組中的數(shù)據(jù)元素位置,即表示操作的是該位置的數(shù)據(jù)。

更新下級(jí)文檔的屬性

更新下級(jí)文檔屬性時(shí)可以直接使用屬性訪問(wèn)符“.”,例如下面需要更新 praise 增加到291。

{
  name: '島上碼農(nóng)', 
  scores: {
    view:  18800, 
    praise: 290, 
    followers: 105
	}
}
db.author.update(
  {name: '島上碼農(nóng)'}, 
  {'$set': {'scores.praise': 291}}
);

下級(jí)文檔若還存在嵌套數(shù)組也是類似的操作,如下面的數(shù)據(jù),需要將“公眾號(hào)”換成“微信公眾號(hào)”:

{
  name: '島上碼農(nóng)', 
  scores: {
    view:  18800, 
    praise: 290, 
    followers: 105,
    platform: ['掘金', '公眾號(hào)']
	}
}
db.author.update(
  {'name': '島上碼農(nóng)', 'scores.platform': '公眾號(hào)'},
  {'$set': {'scores.platform.$':'微信公眾號(hào)'}}
);

屬性增加和移除

MongoDB提供了 $push 和 $pull操作指令來(lái)增加或移除屬性,同時(shí)還提供了 $pop 來(lái)移除數(shù)組的第一個(gè)或最后一個(gè)值。我們給前一個(gè)文檔增加一個(gè) homepage 屬性。

db.author.update(
  {name: '島上碼農(nóng)'}, 
  {$push: {homepage: 'https://juejin.cn/user/70787819648695'}}
);

注意的是,此時(shí)插入的是一個(gè)名為 homepage 的數(shù)組,其中的一個(gè)元素是:juejin.cn/user/707878…。如果是增加不是數(shù)組的屬性,使用$set 指令即可。 可以使用 pull 移除掉匹配的一個(gè)屬性。

db.author.update(
  {name: '島上碼農(nóng)'}, 
  {$pull: {homepage: 'https://juejin.cn/user/70787819648695'}}
);

$pop 操作時(shí)使用數(shù)字-1和1表示移除首尾的元素,對(duì)于下面的數(shù)據(jù),移除數(shù)組platform里的數(shù)據(jù)。

{
  name: '島上碼農(nóng)',
	scores : {
		view: 18800,
		praise: 290,
		followers: 105,
		platform: ['掘金', '公眾號(hào)', '其他1', '其他2']
	}
}
// 移除第一個(gè)元素
db.author.update({name: '島上碼農(nóng)'}, {$pop: {'scores.platform': -1}});
// 移除最后一個(gè)元素
db.author.update({name: '島上碼農(nóng)'}, {$pop: {'scores.platform': 1}});

總結(jié)

本篇介紹了 MongoDB 的嵌套屬性更新操作,主要是定位操作符$的使用。通過(guò)定位符可以定位我們需要修改的數(shù)據(jù)位置,進(jìn)而進(jìn)行更新操作。以及屬性的添加和移除,通過(guò)$push、$pull和$pop指令即可完成響應(yīng)的操作。

以上就是MongoDB如何更新多級(jí)文檔的數(shù)據(jù)的詳細(xì)內(nèi)容,更多關(guān)于MongoDB 更新多級(jí)文檔的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

您可能感興趣的文章:
  • 分布式文檔存儲(chǔ)數(shù)據(jù)庫(kù)之MongoDB訪問(wèn)控制的操作方法
  • 分布式文檔存儲(chǔ)數(shù)據(jù)庫(kù)之MongoDB備份與恢復(fù)的實(shí)踐詳解
  • 分布式文檔存儲(chǔ)數(shù)據(jù)庫(kù)之MongoDB分片集群的問(wèn)題
  • SpringDataMongoDB多文檔事務(wù)的實(shí)現(xiàn)
  • mongodb如何對(duì)文檔內(nèi)數(shù)組進(jìn)行過(guò)濾的方法步驟
  • MongoDB中文檔的更新操作示例詳解
  • MongoDB數(shù)據(jù)庫(kù)文檔操作方法(必看篇)
  • mongodb 數(shù)據(jù)類型(null/字符串/數(shù)字/日期/內(nèi)嵌文檔/數(shù)組等)
  • PHP庫(kù) 查詢Mongodb中的文檔ID的方法

標(biāo)簽:黃石 舟山 安順 呼倫貝爾 白山 楚雄 菏澤 池州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《MongoDB如何更新多級(jí)文檔的數(shù)據(jù)》,本文關(guān)鍵詞  MongoDB,如何,更新,多級(jí),文檔,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《MongoDB如何更新多級(jí)文檔的數(shù)據(jù)》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于MongoDB如何更新多級(jí)文檔的數(shù)據(jù)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 拉孜县| 新乡市| 望城县| 名山县| 新津县| 三穗县| 依安县| 于田县| 宝应县| 永新县| 吴旗县| 靖江市| 呼玛县| 铁岭县| 阿鲁科尔沁旗| 长岛县| 太仓市| 咸丰县| 宕昌县| 永平县| 彰武县| 鲜城| 都匀市| 吴忠市| 嘉禾县| 广灵县| 十堰市| 双辽市| 娄烦县| 凤台县| 乌拉特中旗| 光泽县| 烟台市| 三明市| 兴海县| 珲春市| 德庆县| 鄂托克旗| 西和县| 阿尔山市| 牡丹江市|