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

如何使用MongoRepository更新mongodb中的几个字段?,mongodb,mongorepository,Mongodb,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

我有一个用户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;
@Id
私有字符串_id;
私人电话;
私人字符串电子邮件;
私有字符串密码;
私有字符串用户名;
私有字符串dob;
私人字符串性别;
私人城市;
私有字符串pincode;
私有字符串状态;
私有字符串validUpto;
私有列表用户角色;
私人字符串角色;
我在MongoDB(文档)中保存了所有字段。 现在我只想更新几个字段,比如city、Pincode

我也提到了这一点,但它并没有通过MongoRepository给出答案


是否有任何方法可以通过MongoRepository而不是MongoTemplate只更新少数字段。

存储库仅提供“更新”操作
。保存(对象)

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

这将使您获得所需的“更新”结果

springboot/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
}

即使是我也面临着同样的问题,有人知道吗