无法使用CRUD存储库在mongoDb中执行更新查询

时间:2017-10-26 10:00:31

标签: mongodb spring-data-mongodb

问题

无法使用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\" }'",
  

任何人都可以指导我如何解决这个问题吗?提前谢谢

0 个答案:

没有答案