java操作mongodb之update

一:环境搭建

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



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

    1,写法

            

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


2,test



3,结果




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

1,写法

    


2,结果



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


结果:



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

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

        1,写法

                

        2,测试前

            


        3,测试后

    


验证了执行逻辑。


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

        1,写法

    

    2,测试前


3,测试后


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



六:验证inc(累加)

        1,字符串情况

         写法

                

        测试前


        测试后


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


    2,数字情况

        写法


    测试前


    测试后


验证逻辑。


七,验证rename(重命名Key)

        写法


        测试前


        测试后



八,验证unset(移除key)

    写法


测试前


测试后



九:嵌入文档

    写法


    测试前


测试后




十:修改嵌入的文档

    写法


    测试前


    测试后




十一:删除嵌入的文档

    写法


    测试前


    测试后



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

    写法


测试前


    测试后




十三:再次删除文档

    写法


    测试前


    测试后


    没有任何变化。


    修改写法


    测试结果



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


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









  • 8
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
以下是Java操作MongoDB数据库的基本方法,包括连接数据库、插入数据、查询数据、更新数据和删除数据等操作: 1.连接数据库 ```java // 导入MongoDB驱动包 import com.mongodb.MongoClient; import com.mongodb.client.MongoDatabase; // 连接MongoDB数据库 MongoClient mongoClient = new MongoClient("localhost", 27017); MongoDatabase mongoDatabase = mongoClient.getDatabase("test"); ``` 2.插入数据 ```java // 导入MongoDB驱动包 import com.mongodb.MongoClient; import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoDatabase; import org.bson.Document; // 连接MongoDB数据库 MongoClient mongoClient = new MongoClient("localhost", 27017); MongoDatabase mongoDatabase = mongoClient.getDatabase("test"); // 获取集合 MongoCollection<Document> collection = mongoDatabase.getCollection("users"); // 插入数据 Document document = new Document("name", "张三").append("age", 18).append("gender", "男"); collection.insertOne(document); ``` 3.查询数据 ```java // 导入MongoDB驱动包 import com.mongodb.MongoClient; import com.mongodb.client.FindIterable; import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoDatabase; import org.bson.Document; // 连接MongoDB数据库 MongoClient mongoClient = new MongoClient("localhost", 27017); MongoDatabase mongoDatabase = mongoClient.getDatabase("test"); // 获取集合 MongoCollection<Document> collection = mongoDatabase.getCollection("users"); // 查询数据 FindIterable<Document> findIterable = collection.find(); for (Document document : findIterable) { System.out.println(document.toJson()); } ``` 4.更新数据 ```java // 导入MongoDB驱动包 import com.mongodb.MongoClient; import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoDatabase; import org.bson.Document; import com.mongodb.client.result.UpdateResult; import com.mongodb.client.model.Filters; import com.mongodb.client.model.Updates; // 连接MongoDB数据库 MongoClient mongoClient = new MongoClient("localhost", 27017); MongoDatabase mongoDatabase = mongoClient.getDatabase("test"); // 获取集合 MongoCollection<Document> collection = mongoDatabase.getCollection("users"); // 更新数据 UpdateResult updateResult = collection.updateOne(Filters.eq("name", "张三"), Updates.set("age", 20)); System.out.println("更新的数据条数:" + updateResult.getModifiedCount()); ``` 5.删除数据 ```java // 导入MongoDB驱动包 import com.mongodb.MongoClient; import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoDatabase; import org.bson.Document; import com.mongodb.client.result.DeleteResult; import com.mongodb.client.model.Filters; // 连接MongoDB数据库 MongoClient mongoClient = new MongoClient("localhost", 27017); MongoDatabase mongoDatabase = mongoClient.getDatabase("test"); // 获取集合 MongoCollection<Document> collection = mongoDatabase.getCollection("users"); // 删除数据 DeleteResult deleteResult = collection.deleteOne(Filters.eq("name", "张三")); System.out.println("删除的数据条数:" + deleteResult.getDeletedCount()); ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值