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

MongoDB對(duì)數(shù)組進(jìn)行增刪改查操作

 更新時(shí)間:2023年05月25日 14:16:28   作者:水銀H  
與關(guān)系型數(shù)據(jù)庫相比,MongoDB支持?jǐn)?shù)組,將數(shù)組存儲(chǔ)到文檔之中,下面這篇文章主要給大家介紹了關(guān)于MongoDB對(duì)數(shù)組進(jìn)行增刪改查操作的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下

前言

在使用mongo進(jìn)行業(yè)務(wù)處理中,有時(shí)需要對(duì)文檔(document)中的某個(gè)數(shù)組節(jié)點(diǎn)進(jìn)行操作,這是下面要提到的 p u l l , pull, pull,push,$set操作。

mongoDB語法

設(shè)置一個(gè)類ExtendEntity

示例數(shù)據(jù)如下:

{
  "extendId": "2022061500001",
  "taskId": "T0271001",
  "type": "1",
  "extendContents": [
    {
      "extendCode": "EX1001",
      "extendName": "擴(kuò)展1",
      "extendValue": "手機(jī)屏幕",
      "order": 1,
      "hasValue": true
    }
  ],
  "creator": "LiMing",
  "createTime": "2022-06-15 14:03:40",
  "editor": "LiMing",
  "editTime": "2022-06-15 14:03:40"
},
{
  "extendId": "2022061500002",
  "taskId": "T0271001",
  "type": "1",
  "extendContents": [
    {
      "extendCode": "EX1001",
      "extendName": "擴(kuò)展1",
      "extendValue": "手機(jī)屏幕",
      "order": 1,
      "hasValue": true
    },
	{
      "extendCode": "EX1002",
      "extendName": "擴(kuò)展2",
      "extendValue": "電腦",
      "order": 2,
      "hasValue": true
    }
  ],
  "creator": "ZhangSan",
  "createTime": "2022-06-15 14:03:40",
  "editor": "LiMing",
  "editTime": "2022-06-15 14:03:40"
}

修改數(shù)組節(jié)點(diǎn)–$set

參考: 進(jìn)入官方$set文檔

//將數(shù)組extendContents中extendCode為EX1002值更新
//$表示匹配到的第一個(gè)為EX1002的對(duì)象修改掉
//如果想匹配多個(gè)值,可修改為$[]
db.ExtendEntity.update({"extendContents.extendCode":"EX1002"},{$set:{"extendContents.$.extendValue":"更新1002的值"}})
//也可以指定下標(biāo),從0開始,將數(shù)組extendContents第二個(gè)對(duì)象修改掉
db.ExtendEntity.update({"extendContents.extendCode":"EX1002"},{$set:{"extendContents.1.extendValue":"更新1002的值"}})

增加數(shù)組節(jié)點(diǎn)–$push

參考: 進(jìn)入官方$push文檔

//在數(shù)組extendContents中增加一個(gè)元素
db.ExtendEntity.update({"extendId": "2022061500002"},{$push:{"extendContents":{
      "extendCode": "EX1003",
      "extendName": "擴(kuò)展3",
      "extendValue": "電腦3",
      "order": 3,
      "hasValue": true
    }})

刪除數(shù)組節(jié)點(diǎn)–$pull

參考: 進(jìn)入官方$pull文檔

需要該對(duì)象中每個(gè)屬性值與mongodb數(shù)組中完全相同才能刪除

//從數(shù)組extendContents中刪除一個(gè)對(duì)象元素
{ "extendCode": "EX1003","extendName": "擴(kuò)展3","extendValue": "電腦3","order": 3,"hasValue": true}
db.ExtendEntity.update({"extendId": "2022061500002"},{$pull:{"extendContents":{
      "extendCode": "EX1003",
      "extendName": "擴(kuò)展3",
      "extendValue": "電腦3",
      "order": 3,
      "hasValue": true
    }})

如果需要按數(shù)據(jù)中某個(gè)對(duì)象元素的某個(gè)屬性刪除

//刪除數(shù)組extendContents中extendCode為EX1003的對(duì)象元素
db.ExtendEntity.update({"extendId": "2022061500002"},{$pull:{"extendContents":{"extendCode":"EX1003"}})

spring語法

當(dāng)項(xiàng)目使用sping+mongodb時(shí),spring為我們提供了相應(yīng)的接口。使用org.springframework.data.mongodb.core.queryUpdate類中的set、push、pull方法。

修改數(shù)組節(jié)點(diǎn)–$set

Update update = new Update();
//修改元素
update.set("extendContents.$.extendValue","更新1002的值");
update.set("editTime",new Date());
//查詢條件
Query query = new Query(Criteria.where("extendContents.extendCode").is("EX1002"));
mongoTemplate.updateFirst(query, update, ExtendEntity.class);

增加數(shù)組節(jié)點(diǎn)–$push

// 字符串text的對(duì)象實(shí)體為ExtendContent 
String text = "{ \"extendCode\": \"EX1003\",\"extendName\": \"擴(kuò)展3\",\"extendValue\": \"電腦3\",\"order\": 3,\"hasValue\": true}";
ExtendContent addExtend = JSONObject.parseObject(text, ExtendContent.class);
Update update = new Update();
//添加元素
update.push("extendContents",addExtend);
update.set("editTime",new Date());
//查詢條件
Query query = new Query(Criteria.where("extendId").is("2022061500002"));
mongoTemplate.updateFirst(query, update, ExtendEntity.class);

刪除數(shù)組節(jié)點(diǎn)–$pull

Update update = new Update();
//刪除元素,刪除數(shù)組extendContents中extendCode=EX1003的對(duì)象元素
update.pull("extendContents", new BasicDBObject("extendCode","EX1003"));
update.set("editTime",new Date());
//查詢條件
Query query = new Query(Criteria.where("extendId").is("2022061500002"));
mongoTemplate.updateFirst(query, update, ExtendEntity.class);

注: 以上示例均使用mongoTemplate.updateFirst,如需要處理多條數(shù)據(jù),可使用mongoTemplate.updateMulti方法。

總結(jié)

到此這篇關(guān)于MongoDB對(duì)數(shù)組進(jìn)行增刪改查操作的文章就介紹到這了,更多相關(guān)MongoDB對(duì)數(shù)組增刪改查內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • mongodb數(shù)據(jù)庫入門之CURD簡單操作示例

    mongodb數(shù)據(jù)庫入門之CURD簡單操作示例

    這篇文章主要介紹了mongodb數(shù)據(jù)庫入門之CURD簡單操作,結(jié)合簡單示例形式分析了MongoDB數(shù)據(jù)庫基本的CURD增刪改查相關(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下
    2019-10-10
  • mongodb 中rs.stauts()命令參數(shù)解析

    mongodb 中rs.stauts()命令參數(shù)解析

    MongoDB的rs.status()命令是查看副本集狀態(tài)的重要工具,它可以展示副本集中各個(gè)成員的角色、健康狀態(tài)、同步進(jìn)度等關(guān)鍵信息,本文介紹mongodb 中rs.stauts()命令參數(shù)解析,感興趣的朋友跟隨小編一起看看吧
    2024-09-09
  • 基于MongoDB數(shù)據(jù)庫索引構(gòu)建情況全面分析

    基于MongoDB數(shù)據(jù)庫索引構(gòu)建情況全面分析

    下面小編就為大家?guī)硪黄贛ongoDB數(shù)據(jù)庫索引構(gòu)建情況全面分析。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-07-07
  • mongodb增刪改查詳解_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    mongodb增刪改查詳解_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    這篇文章主要介紹了mongodb增刪改查詳解,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-08-08
  • MongoDB常用操作命令大全

    MongoDB常用操作命令大全

    成功啟動(dòng)MongoDB后,再打開一個(gè)命令行窗口輸入mongo,就可以進(jìn)行數(shù)據(jù)庫的一些操作。輸入help可以看到基本操作命令,只是MongoDB沒有創(chuàng)建數(shù)據(jù)庫的命令,但有類似的命令
    2014-03-03
  • Java操作MongoDB數(shù)據(jù)庫示例分享

    Java操作MongoDB數(shù)據(jù)庫示例分享

    MongoDB是一個(gè)文檔型數(shù)據(jù)庫,是NOSQL家族中最重要的成員之一,以下代碼封裝了MongoDB的基本操作。具體都在備注當(dāng)中,要仔細(xì)看哦
    2014-08-08
  • 通用MapReduce程序復(fù)制HBase表數(shù)據(jù)

    通用MapReduce程序復(fù)制HBase表數(shù)據(jù)

    這篇文章主要為大家詳細(xì)介紹了通用MapReduce程序復(fù)制HBase表數(shù)據(jù),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-12-12
  • Mongo Shell 執(zhí)行環(huán)境的基本操作

    Mongo Shell 執(zhí)行環(huán)境的基本操作

    Mongo Shell 是 MongoDB 的交互式 JavaScript shell,用于與 MongoDB 數(shù)據(jù)庫進(jìn)行交互,這篇文章主要介紹了Mongo Shell 執(zhí)行環(huán)境,需要的朋友可以參考下
    2025-02-02
  • MongoDB索引類型匯總分享

    MongoDB索引類型匯總分享

    這篇文章主要介紹了MongoDB索引類型匯總,單字段索引、復(fù)合索引、多鍵索引、文本索引、2dsphere索引等多種索引類型,需要的朋友可以參考一下
    2022-04-04
  • MongoDB查詢操作限制返回字段的方法

    MongoDB查詢操作限制返回字段的方法

    這篇文章主要介紹了MongoDB查詢操作限制返回字段的方法,需要的朋友可以參考下
    2014-05-05

最新評(píng)論

双鸭山市| 兴山县| 东乡族自治县| 宜都市| 大余县| 滨海县| 勃利县| 通州市| 阿拉善左旗| 罗田县| 内黄县| 广西| 和政县| 常熟市| 河源市| 长沙县| 汕尾市| 牟定县| 衡阳县| 桃园市| 邵阳市| 当雄县| 铜梁县| 齐河县| 阿合奇县| 莱芜市| 西贡区| 金寨县| 吴旗县| 易门县| 普兰县| 新乐市| 大港区| 民勤县| 宁乡县| 泰安市| 瑞安市| 韩城市| 东乡县| 佛山市| 辽宁省|