之前一直用MongoDB官方提供的库来进行操作,现在这个项目用到了SpringData的MongoDB工具类,发现有两个涉及到对象存储的方法:insert和save,不明白其中的区别,经查资料和实验发现有如下不同。
0x01. 总结
若要保存的数据中存在主键 ,insert() 会提示错误,而save() 则更改原来的内容为新内容。
0x02. 举例
- 如果MongoDB中已经存在以下数据:
{_id : 1, " name " : " lemonsoft " }
接下来分别执行下面操作:
`insert({_id : 1, " name " : " lemonsoft2" }) ` // 会报主键重复的错误提示
`save({ _id : 1, " name " : " lemonsoft2" })` // 会成功把 lemonsoft 修改为 lemonsoft2 。
- 若新增的数据中没有主键时,会增加一条记录。
- 如果MongoDB中已经存在以下数据:
{_id : 1, " name " : " lemonsoft " }
接下来分别执行下面操作:
insert({ " name " : " lemonsoft2 " }) // 插入的数据因为没有主键,所以会增加一条数据
save({ " name " : " lemonsoft2 " }) // 增加一条数据。
网友评论