Приведение к объекту не удалось для значения » { proposer: ‘618e49a68e18cd48286de4b5’ } «(тип объекта) по пути «_id» для модели «Предложение»

#graphql #backend #apollo

Вопрос:

Я получаю эту ошибку на игровой площадке graphql (изображение ниже ) . Я также проверил действительность ObjectId в распознавателе.

// модель

 const ProposalSchema = new Schema({  cover  Letter: {  type: String,  },  budget: {  type: String,  },  proposals: {  type: mongoose.Schema.Types.ObjectId,  },  _id: {  type: mongoose.Schema.Types.ObjectId,  },  });  

//распознаватель также проверил, является ли аргумент допустимым, используя mongoose.isValidObjectId(proposser) его, возвращает значение true

 Query: {  proposals(_, args) {  const { proposser } = args;  return Proposal.findById({  proposser,  });  },  },  

// схема

 const typeDefs = gql`  type Proposal {  _id: ID!  coverLetter: String  budget: String  proposser: ID!  } `;  const Proposal = mongoose.model("Proposal", ProposalSchema);  

введите описание изображения здесь

Ответ №1:

Я использовал неправильный метод в распознавателях . findById использовался для поля, не имеющего идентификатора.

 async proposals(_, args) {  const { proposser } = args;  const userProposals = await Proposal.find({  proposser,  });   try {  const result = userProposals;  return result ? result : [];  } catch (err) {  console.log(err);  } },