美文网首页
SpingData MongoDB中insert与save的区别

SpingData MongoDB中insert与save的区别

作者: 柠檬信息技术有限公司 | 来源:发表于2018-01-28 14:48 被阅读29次

    之前一直用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 " })     // 增加一条数据。
    

    相关文章

      网友评论

          本文标题:SpingData MongoDB中insert与save的区别

          本文链接:https://www.haomeiwen.com/subject/flzaaxtx.html