如何使用 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
}
我有一个用户 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
}