问题
无法使用MongoDb CRUD存储库在mongoDb中执行更新查询
对于MySql中的Ex,我可以应用查询,如set a = x,b = y,其中username = p;
我为Mongo做的任务
1)对于更新记录,我已经制作了一个休息API。
2) 我确保用户名是唯一的。
@PutMapping(value = "")
ApiResponse<Employee> put(@RequestBody Employee employee) {
if(employee.getEmail()!=null && !checkEmailValidation(employee))
return ApiResponse.failure().message("Please enter valid email Address").build();
else if(employee.getContact()!=null&&!checkSizeValidation(employee))
return ApiResponse.failure().message("Min Size of Contact must be 10").object(null);
return ApiResponse.success().object(employeeService.put(employee));
}
@Override
public Employee put(Employee employee) {
return employeeRepository.save(employee);
}
public interface EmployeeRepository extends MongoRepository<Employee, String> {
Employee findByUsername(String userName);
Employee findByContact(String contact);
}
LoginUser模型
public class LoginUser {
private String contact;
private String email;
private String address;
private Gender gender;
@Indexed
private String name;
private DateTime dob;
@Indexed(unique = true)
private String username;
private String country;
private String designation;
员工模型
public class Employee extends LoginUser {
@Id
private String id;
private String imageId;
对于给定的方案,我无法应用更新查询。 即如果用户输入记录并且已存在给定的用户名。
提供I / P
我已将此用户记录保存在数据库中。 现在我想再次更新数据,而不是用户名,地址,性别等
{ &#34;地址&#34;:&#34; 44 hakikat nagar&#34; }
预期输出
必须根据我收到的用户名
插入员工记录显示输出
"exception": "org.springframework.dao.DuplicateKeyException",
"message": "Write failed with error code 11000 and error message 'E11000 duplicate key error collection: connecto.employee index: username dup key: { : \"iouy\" }'; nested exception is com.mongodb.DuplicateKeyException: Write failed with error code 11000 and error message 'E11000 duplicate key error collection: connecto.employee index: username dup key: { : \"iouy\" }'",
任何人都可以指导我如何解决这个问题吗?提前谢谢