Невозможно удалить или найти записи по идентификатору в mongoDB - PullRequest
0 голосов
/ 12 июня 2019

Я сохраняю записи клиентов в БД Mongo, я использую Angular 6 в качестве внешнего интерфейса. При сохранении я не отправляю значение Id, поэтому Mongo автоматически создает идентификатор и сохраняет записи.

Я использую MongoRepository в Java для сохранения. Но при выполнении «deleteById» или «findById» невозможно найти или удалить эти записи.

Можете ли вы помочь.

Угловая модель клиента


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 Controller


@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>{

}

1 Ответ

0 голосов
/ 13 июня 2019

Проблема заключается в том, что тип данных основного поля необходимо изменить с String на ObjectId. Mongo db по умолчанию использует ObjecId в качестве типа первичного ключа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...