java操作mongodb之update

一:环境搭建

                    环境搭建代码(SSM+mongdb)点击打开链接



二:根据_id跟新collection中存在的字段。

    1,写法

            java操作mongodb之update_第1张图片

_id,及值是存在的。field   orderDate也是存在的。


2,test

java操作mongodb之update_第2张图片


3,结果

java操作mongodb之update_第3张图片



三:根据_id更新collection中不存在的field

1,写法

    java操作mongodb之update_第4张图片


2,结果



使用mongoTemplate.upsert()完成,filed不存在,则添加上去。

java操作mongodb之update_第5张图片

结果:

java操作mongodb之update_第6张图片


四:更新多条数据(并不是更新多个document,而是满足条件的更新)对比SQL批量更新。

        对满足条件的都进行更新。

        1,写法

                java操作mongodb之update_第7张图片

        2,测试前

            


        3,测试后

    java操作mongodb之update_第8张图片


验证了执行逻辑。


五,验证mongoTemplate.updateFirst()执行逻辑。

        1,写法

    java操作mongodb之update_第9张图片

    2,测试前

java操作mongodb之update_第10张图片

3,测试后

java操作mongodb之update_第11张图片

4,满足逻辑。当满足条件的document有多个的时候,只更新其中一条。



六:验证inc(累加)

        1,字符串情况

         写法

                java操作mongodb之update_第12张图片

        测试前


        测试后


说明inc对字符串是不能进行+的,而且程序没有报错,也没有抛异常,反正就像什么都没有发生一样。


    2,数字情况

        写法

java操作mongodb之update_第13张图片

    测试前


    测试后

java操作mongodb之update_第14张图片

验证逻辑。


七,验证rename(重命名Key)

        写法

java操作mongodb之update_第15张图片

        测试前


        测试后

java操作mongodb之update_第16张图片


八,验证unset(移除key)

    写法

java操作mongodb之update_第17张图片

测试前


测试后

java操作mongodb之update_第18张图片


九:嵌入文档

    写法

java操作mongodb之update_第19张图片

    测试前

java操作mongodb之update_第20张图片

测试后

java操作mongodb之update_第21张图片



十:修改嵌入的文档

    写法

java操作mongodb之update_第22张图片

    测试前

java操作mongodb之update_第23张图片

    测试后

java操作mongodb之update_第24张图片



十一:删除嵌入的文档

    写法

java操作mongodb之update_第25张图片

    测试前

java操作mongodb之update_第26张图片

    测试后

java操作mongodb之update_第27张图片


十二:再次嵌入文档(内容跟第一次嵌入文档一样)

    写法

java操作mongodb之update_第28张图片

测试前

java操作mongodb之update_第29张图片

    测试后

java操作mongodb之update_第30张图片



十三:再次删除文档

    写法

java操作mongodb之update_第31张图片

    测试前

java操作mongodb之update_第32张图片

    测试后

java操作mongodb之update_第33张图片

    没有任何变化。


    修改写法

java操作mongodb之update_第34张图片

    测试结果

java操作mongodb之update_第35张图片


对比update.pull()于update.unset()。从结果就可以看出,unset只删除value并留下一个null。而pull()删除value后未留下null.但是pull中的对象跟数据库中的对象一致,在数据内容上完全一致,有一点不一样,则无法删除。


十四,批量更新document。这里更新后的结果是不一样的,比如第一条数据的,orderCode更新为1003;第二条数据的orderCode更新为1004;第三条的orderCode跟新为1005。排除循环执行一条一条更新。









你可能感兴趣的:(mongodb)