Spring MongoTemplate中保存数据insert 和save方法的区别
测试方法
@PostMapping("/mongoSave")
public Response mongoSave(){
Map map = new HashMap<>();
map.put("_id", "10086");
map.put("name", "songfayuan");
map.put("age", "26");
map.put("wechat", "SFY54420");
this.mongoTemplate.save(map, "collectionName1");
this.mongoTemplate.insert(map, "collectionName2");
return Response.successResponse("新增成功");
}
区别 插入重复数据
insert: 若新增数据的主键已经存在,则会抛 org.springframework.dao.DuplicateKeyException 异常提示主键重复,不保存当前数据。
save: 若新增数据的主键已经存在,则会对当前已经存在的数据进行修改操作。
【Spring MongoTemplate中保存数据insert 和save方法的区别】批操作
insert: 可以一次性插入一整个列表,而不用进行遍历操作,效率相对较高
save: 需要遍历列表,进行一个个的插入
insert插入抛异常:
{
"msg": "Write failed with error code 11000 and error message 'E11000 duplicate key error collection: collection.collectionName2 index: _id_ dup key: { : \"10086\" }';
nested exception is com.mongodb.DuplicateKeyException: Write failed with error code 11000 and error message 'E11000 duplicate key error collection: collection.collectionName2 index: _id_ dup key: { : \"10086\" }'",
"code": 500,
"data": null
}
推荐阅读
- 热闹中的孤独
- Shell-Bash变量与运算符
- JS中的各种宽高度定义及其应用
- 2021-02-17|2021-02-17 小儿按摩膻中穴-舒缓咳嗽
- 深入理解Go之generate
- 异地恋中,逐渐适应一个人到底意味着什么()
- Activiti(一)SpringBoot2集成Activiti6
- 我眼中的佛系经纪人
- 《魔法科高中的劣等生》第26卷(Invasion篇)发售
- “成长”读书社群招募