问题描述
- mongoTemplate修改时如何传入一个对象 1C
- 第一次使用mongoDB来开发java项目,整合了Spring,有一个user类,里面有id,name和password,想在修改的时候直接传入一个user对象,因为之前mysql的时候一直是这么干的。。。但是测试时发现不起作用,因为关于mongoTemplate的文档比较少,也一直没查到,所以有几个问题想请教一下高手,望不吝赐教,谢谢!
service相关代码
public int updateUser(User user) { mongoTemplate.updateFirst(new Query(Criteria.where(""id"").is(user.getId()))Update.update(""user"" user) User.class USER_COLLECTION); return 0; }
测试类相关代码@Test public void userAddTest() throws Exception { User user = new User(); user.setName(""zhangsan""); user.setPassword(""123abc""); userService.addUser(user); List<User> list = userService.listAll(); for (User user2 : list) { System.out.println(user2.getName()); System.out.println(user2.getPassword()); } System.out.println(""*********************""); user.setName(""lisi""); userService.updateUser(user); list = userService.listAll(); for (User user2 : list) { System.out.println(user2.getName()); System.out.println(user2.getPassword()); } }
测试结果:
zhangsan 123abc********************* zhangsan 123abc
对了,还有一个问题,就是那个Update类中的update(String key Object Value)里面的key 和 value是什么?因为在文档里没有查到……所以还烦请一并赐教,谢谢~
解决方案
key是mongodb里面集合里的字段名,value是你要修改的值,要传入对象你可以看看spring data mongodb。用jpa方式操作简单
时间: 2024-11-03 02:42:01