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

无法使用CRUD存储库在mongoDb中执行更新查询,mongodb,spring-data-mongodb,Mongodb,Spring Data Mongodb,问题 无法使用mongoDb CRUD存储库在mongoDb中执行更新查询 对于MySql中的Ex,我可以应用像set a=x,b=y这样的查询,其中username=p 我为Mongo做的任务 1) 为了更新记录,我制作了一个RESTAPI (二) 我正在确保用户名是唯一的 @PutMapping(value = "") ApiResponse<Employee> put(@RequestBody Employee employee) { if(employee.

问题

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

对于MySql中的Ex,我可以应用像set a=x,b=y这样的查询,其中username=p

我为Mongo做的任务

1) 为了更新记录,我制作了一个RESTAPI

(二) 我正在确保用户名是唯一的

    @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);
}
员工模式

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、 e如果用户输入记录且给定用户名已存在

提供的I/p

我已先将此用户记录保存在数据库中。 现在我想再次更新除用户名以外的数据,即地址、性别等

{ “地址”:“44 hakikat nagar” }

预期产量

必须根据我收到的用户名插入员工记录

显示的输出

"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\" }'",
有人能指导我如何解决这个问题吗?提前谢谢


你有更新查询吗?您可以将其添加到帖子中吗?@Veeram这只是一个保存操作,它根据upsert逻辑更新记录,即如果存在,则更新,否则插入。我已编辑了SAME。在更新之前,您是否从数据库和存储库中检索了
员工
实体?请查看此处的答案。无法使用
MongoRepositoty
更新特定字段。要么全有,要么全没有。您必须通过
MongoTemplate
使用更新运算符,该运算符将更新特定字段。您有更新查询吗?您可以将其添加到帖子中吗?@Veeram这只是一个保存操作,它根据upsert逻辑更新记录,即如果存在,则更新,否则插入。我已编辑了SAME。在更新之前,您是否从数据库和存储库中检索了
员工
实体?请查看此处的答案。无法使用
MongoRepositoty
更新特定字段。要么全有,要么全没有。您必须通过
MongoTemplate
使用更新运算符,该运算符将更新特定字段。