我目前正在尝试弄清楚如何通过 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);
...查询用户,如果发现将 logincount 增加 1,则在 null 上抛出异常。完美运行。但这是正确的方法吗?我必须再次查询用户吗?我不能修改对象并重新保存它吗?