Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

132
Visualizações
Mongoose update actualiza el objeto anidado dentro de una matriz

Estoy tratando de consultar y actualizar un elemento en la matriz de listas (roster.schedule.monday.start) y luego actualizar el valor en este ejemplo.

monday.start estas dos claves deben ser dinámicas

Creo que el enfoque sería algo como esto.

  1. Buscar documento por _id

  2. encontrar objeto coincidente en matriz por _id

  3. actualizar valores anidados

He intentado esto a continuación sin suerte, ¿alguien podría ayudar en este problema?

muchas gracias

 // Mongoose query exports.updateRoster = (req, res) => { const editDay = req.body.day; const value = req.body.valueOfEntry; const userId = req.body.id; const rosterId = req.body.rosterId; const startPerieod = req.body.time; let dynObj = { ["rosters.$.schedule.$." + editDay + ".$." + startPerieod]: value, }; Carer.updateOne({ "rosters._id": rosterId }, { $set: dynObj }).exec( (err, roster) => { if (err) { return res.status(400).json({ error: err, }); } res.json(roster); } ); };
 // Schema const mongoose = require("mongoose"); const { ObjectId } = mongoose.Schema; const carersSchema = new mongoose.Schema({ rosters: [ { schedule: { monday: { start: { type: String }, finish: { type: String }, notes: { type: String }, }, ], }); module.exports = mongoose.model("Carers", carersSchema);
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Intente usar $ set y filtros de matriz como en el enlace

 Carer.findOneAndUpdate({_id: carerId}, { "$set": {[`rosters.$[outer].schedule.${editDay}.${startPerieod}`]: value} }, { "arrayFilters": [{ "outer._id": roasterId }] }, function(err, response) { if(err) console.log(err) console.log(response) })
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda