如何使用 MongoRepository 更新 mongodb 中的几个字段?

How to update few fields in mongodb by using MongoRepository?

我有一个用户 POJO,其字段为:

@Id
    private String _id;
    private String phone;
    private String email;
    private String password;
    private String userName;
    private String dob;
    private String gender;
    private String city;
    private String pincode;
    private String status;
    private String validUpto;
    private List<String> userRole;
    private String persona;

我保存了 MongoDB(文档)中的所有字段。 现在我只想更新城市、Pincode 等几个字段。

我也参考了这个 question,但它没有通过 MongoRepository 给出答案。

有什么方法可以通过 MongoRepository 而不是 MongoTemplate 只更新几个字段。

存储库不提供 'update' 操作,仅 .save(object);

但是您可以通过从存储库中检索对象来更新它,更改相关字段。然后,将更新后的对象保存到存储库。

这将为您带来 'updating' 的预期结果。

Spring-boot/SpringRepository 示例。

@Autowired
UserRepository userRepository;

@Test
public void testUpdateUser() throws Exception {
    User foundUser = userRepository.findById("1");  

    foundUser.setCity("Helsinki");
    // foundUser.setOtherFields("new values");
    userRepository.save(foundUser); // Will 'update' but it essentially replaces the entity in database
}