我们都知道springboot整合mongodb,insert()和save()都是插入文档方法,但是他们有什么不同呢?下面我们来细说一下
相同点
他们都有把数据插入文档的能力。
/**
* insert方法插入
*/
@Test
void insert(){
mongoTemplate.insert(new User(1,"CoderGAP",18));
}
/**
* save方法插入
*/
@Test
void save(){
mongoTemplate.save(new User(2,"CoderGAP",18));
}
不同点
1.insert支持集合插入,能传入集合参数,save只能一条一条的传入。


2.插入id相同的数据,insert方法会报错,而save方法不会。save方法本质上是如果没有id相同的数据就直接插入,如果有id相同的数据则是先删除后插入。
如果插入id相同的数据,insert会报以下错误
Caused by: com.mongodb.MongoWriteException
总结
1.save()方法只能一条一条的插入,效率比较慢。而insert()方法能传入集合插入,效率比较高。
2.save()方法如果有id相同的数据,先删除再插入,不会报错,可以理解为更新数据。insert()如果有id相同的数据则会报MongoWriteException错误。具体使用根据业务的场景。
文章对比了Springboot整合mongodb时,insert()和save()两个插入方法的不同。相同点在于两者都能插入文档,不同点在于insert()支持批量插入,而save()只能单条插入;当遇到id相同的文档时,insert()会报错,save()则会先删除再插入,可视为更新操作。因此,save()适合更新数据,insert()在效率上占优,适用于无重复id的批量插入。
5660

被折叠的 条评论
为什么被折叠?



