gpt4 book ai didi

Spring 数据 MongoDB : Updating documents

转载 作者:可可西里 更新时间:2023-11-01 09:59:46 26 4
gpt4 key购买 nike

我目前正在尝试弄清楚如何通过 Spring Data 更新 MongoDb 中的文档。当然还有mongoTemplate.updateFirst等等。但考虑一下:

User u = mongoTemplate.findOne(new Query(Criteria.where("_id").is(s)), User.class);
if (u == null) throw new UsernameNotFoundException("user " + s + " does not exist");
Session.setCurrentUser(u);
mongoTemplate.updateFirst(new Query(Criteria.where("_id").is(s)), new Update().inc("logincount", 1), User.class);

... 查询用户,在 null 上抛出异常,如果找到则将 logincount 增加 1。完美运行。但这是正确的方法吗?我是否必须再次查询用户?我不能修改对象并重新保存吗?

最佳答案

您可以通过执行以下操作来避免额外的查询:

WriteResult result = mongoTemplate.updateFirst(new Query(Criteria.where("_id").is(s)), new Update().inc("logincount", 1), User.class);
if (result.getN() != 1) {
throw new UsernameNotFoundException("user " + s + " does not exist");
}

关于 Spring 数据 MongoDB : Updating documents,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10524160/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com