无法按 ID 删除或查找 mongoDB 中的记录

Not able to delete or find records by id in mongoDB

我正在 Mongo 数据库中保存客户记录,我正在使用 Angular 6 作为前端。 保存时,我没有发送 ID 值,因此 Mongo 自动创建 ID 并保存记录。

我在 Java 中使用 Mongo 存储库进行保存。但是在执行 "deleteById" 或 "findById" 时,它无法搜索或删除这些记录。

你能帮忙吗

Angular 客户模型


export interface Customer {
    id : string,
    custId : number,
    customerName : string,
    email: string,
    phone : string,
    age: number,
    city : string,
    state : string,
    createdDate : Date
}

User.service.ts


deleteCustomerData(id): Observable<Customer>{
    console.log(this.deleteCustomerUrl  + id);
    return this.http.delete<Customer>(this.deleteCustomerUrl + id);
  }

Java 控制器


@DeleteMapping("/deleteCustomer/{id}")
    public String deleteCustomerById(@PathVariable String id) {
        //ObjectId objId = new ObjectId(id);
        customerService.deleteCustomerById(id);
        return "deleted customer by id"+ id;
    }

Java 服务


public void deleteCustomerById(String id) {
        customerRepository.deleteById(id);
    }

Java 型号


@Document(collection="Customer")
public class Customer {

    @Id

    private String Id;

    private String customerName;
    private int age;
    private String city;
    private String state;
    private int custId;

}

Java 存储库


package com.tivo.extract.config.repository;

import org.springframework.data.mongodb.repository.MongoRepository;

import com.tivo.extract.config.model.Customer;

public interface CustomerRepository extends MongoRepository<Customer, String>{

}

问题是主字段的数据类型需要从 String 更改为 ObjectId。 Mongo db默认使用ObjecId作为主键类型