2 ding343621594 ding343621594 于 2016.04.25 10:15 提问

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是什么?因为在文档里没有查到……所以还烦请一并赐教,谢谢~

3个回答

buyi_
buyi_   2016.04.27 00:53

key是mongodb里面集合里的字段名,value是你要修改的值,要传入对象你可以看看spring data mongodb。用jpa方式操作简单

xdstuhq
xdstuhq   2016.07.25 19:06
zouwenjin
zouwenjin   2016.11.08 16:30

我在项目中使用的是spring mongotemplate,是修改某个字段,希望下面链接对你有帮助
http://dashen100.com/question/984

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!