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

158
Views
Parche (findByIdAndUpdate) en Mongoose

Tengo que hacer un CRUD simple en la API de Node/Mongoose. También tengo que put y patch y mientras hago el parche, estoy un poco confundido, porque quería usar el método findByIdAndUpdate , pero como veo en los ejemplos, solo hay un registro actualizado, por ejemplo, {name: "newName"} . Me preguntaba qué debería hacer si, por ejemplo, quisiera actualizar dos celdas.

mi esquema:

 const userSchema = new Schema({ login: String, email: String, registrationDate: Date, });

Mi código de parche:

 router.patch('/:id', async (req, res) => { const id = req.params.id; User.findByIdAndUpdate(id, { ??? }, function (err, docs) { if (err){ console.log(err) } else{ console.log("Updated User : ", docs); } }); });

No sé qué debo escribir en "???", porque ¿y si quisiera actualizar solo el inicio de sesión y si quisiera actualizar el nombre y el correo electrónico? ¿Quizás me equivoque y PATCH se use solo para editar UNA celda y en otros casos debería usar PUT ?

Editar:

Lo hice funcionar usando algo como esto:

 router.patch('/:id', async (req, res) => { const id = req.params.id; let updates={} if (req.body.login) { updates["login"] = req.body.login } if (req.body.email) { updates["email"] = req.body.email } if (req.body.registrationDate) { updates["registrationDate"] = req.body.registrationDate } User.findByIdAndUpdate(id, updates, function (err, docs) { if (err){ console.log(err) } else{ console.log("Updated User : ", docs); } }); });

De todas formas tengo una duda que debo hacer para "detener" la acción. Estoy usando HTTPie y cuando escribo http PATCH......, parece que no puedo escribir nada más, porque todavía funciona, necesito hacer CTRL+C para detener la consulta.

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Simplemente escriba los campos que desea cambiar y los nuevos valores separados por comas.

 const id= req.params.id; const email = "newemail"; const date = "1991/13/01"; const user = await User.findByIdAndUpdate( { _id: id, }, { email, registrationDate: date}, { upsert: false } );
about 4 years ago · Juan Pablo Isaza 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!