数据
{
"_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")
}
- 新增、修改
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);
可新增第一个对象的字段
- 批量修改
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数组整个对象
- 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);