Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

241
Views
MongoDb: se obtiene un error al enviar documentos en una matriz

Necesito ayuda con mi backend. Estoy usando cartero y aquí está el modelo de mi back-end:

 name: { type: String, required: [true, 'Department Name is Required'] }, description: { type: String, required: [true, 'Description is Required'] }, agents: [ { agentId: { type: String, required: [true, 'Agent ID is Required'] }, createdOn: { type: String, default: new Date() } } ]

Lo que intento hacer es insertar documentos en la matriz de agentes, pero recibo algunos errores.

Las rutas y los controladores son los siguientes:

 Routes: router.post('/enroll', (req, res) => { UserController.enroll(req.body).then(result => res.send(result)) });
 Controllers: module.exports.enroll = (params) => { return Department.findById({departmentId: params.departmentId}).then(department => { department.agents.push({userId: params.userId}) return department.save().then((department, error) => { return (err) ? false : true }) }) }

Este es el error que estoy recibiendo: (nodo: 9916) UnhandledPromiseRejectionWarning: CastError: Cast to ObjectId falló para el valor "{ departmentId: '60e27549c36af1272812c4e3' }" (tipo de objeto) en la ruta "_id" para el modelo "Departamento"

El objetivo es buscar la identificación del departamento y empujará la identificación del agente que ya adquirí.

over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

Probar

Cambio

return Department.findById({departmentId: params.departmentId}).

a

return Department.findById(params.departmentId)


findById aceptar solo id no objeto

over 4 years ago · Santiago Trujillo Report

0

Gracias Tushar! Eres muy útil.

Pude encontrar la respuesta utilizando el enlace que proporcionó y me di cuenta de que estoy cometiendo algunos errores con el código en sí. Jajajaja

 I've modified routes to: router.post('/enroll/:id', (req, res) => { const params = { departmentId: req.params.id, agentId: req.body.agentId } UserController.enroll(params).then(department => res.send(department)) });
 Then, some of the lines in my controllers too: module.exports.enroll = (params) => { return Department.findById(params.departmentId).then(department => { department.agents.push({agentId: params.agentId}) return department.save().then((department, error) => { return (error) ? false : true }) }) }

Ahora está funcionando.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!