mongoTemplate内嵌数组文档 批量修改

数据

{
    "_id" : "8e31024805bb48fbbdaef9ce6df191e5", 
    "talkListVos" : [ 
        {
            "recognTime" : "2020-02-14 10:20:55",
            "slience" : 0,
            "source" : 0,
            "text" : "我是talkListVos.0.text"
        }, 
        {
            "recognTime" : "2020-02-14 10:20:55",
            "slience" : 0,
            "source" : 1,
            "text" : "我是talkListVos.1.text"
        }
    ],
    "saveTime" : ISODate("2020-02-14T02:21:10.809Z")
}
  1. 新增、修改 talkListVos第一个对象的某个参数
Criteria criteria = Criteria.where("_id").is("8e31024805bb48fbbdaef9ce6df191e5");
Update update =  new  Update();
update.set("talkListVos.0.text", "我是修改后的talkListVos.0.text");
mongoTemplate.updateMulti(Query.query(criteria),update, MsgPush.class);

在这里插入图片描述
update.set("talkListVos.0",object); 可修改整个对象
update.set("talkListVos.0.type",object); 可新增第一个对象的字段

  1. 批量修改 talkListVos所有对象的某个参数
Criteria criteria = Criteria.where("_id").is("8e31024805bb48fbbdaef9ce6df191e5");
Update update =  new  Update();
update.set("talkListVos.$[].text", "我是批量修改后的值");
mongoTemplate.updateMulti(Query.query(criteria),update, MsgPush.class);

在这里插入图片描述
update.set("talkListVos.$[]", object); 可覆盖talkListVos数组整个对象

  1. pop push pull addToSet 都是针对数组的操作

可以参考:https://blog.youkuaiyun.com/niclascage/article/details/47009989

Criteria criteria = Criteria.where("_id").is("8e31024805bb48fbbdaef9ce6df191e5");
Update update =  new  Update();
Map<String,Object> objectMap = new HashMap<>();
objectMap.put("type",1);
objectMap.put("name",1);
update.addToSet("talkListVos", objectMap);
mongoTemplate.updateMulti(Query.query(criteria),update, MsgPush.class);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值