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

92
Views
UpdateMany no está actualizando los datos

En el esquema de usuario, la ubicación es una matriz de objetos con locations._id es ObjectId.

Este es mi archivo de servicio de usuario.

 const updatedBy = { _id: mongoose.Types.ObjectId(req.params.id), "locations._id": { $in: req.body.locationIds }, }; const updatingData = { $set: { "locations.$.status": req.query.status }}; const user = await userDbServices.updateRecords(updatedBy, updatingData);

En req.body.locationIds , paso una matriz.

Y este es el archivo de servicio de base de datos de usuario

 exports.updateRecords = async function (updateParam, updatingData) { return userModel.updateMany(updateParam, updatingData); };

Cuando presiono la API, se actualiza el primer documento incrustado de ubicación. Pero los otros no lo son. ¿Como puedo resolver esto?

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

0

Este es en realidad el comportamiento esperado del identificador $ , de los documentos:

el operador posicional $ actúa como marcador de posición para el primer elemento que coincide con el documento de consulta

Para actualizar varios elementos, desea usar el identificador $[] con arrayFilters , así:

 userModel.updateMany({ _id: mongoose.Types.ObjectId(req.params.id), "locations._id": { $in: req.body.locationIds }, }, { $set: { "locations.$[elem].status": req.query.status } }, { arrayFilters: [ { "elem._id": { $in: req.body.locationIds } } ] })

Parque infantil Mongo

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!