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

242
Visualizações
¿Hay alguna forma de actualizar un objeto en una matriz de un documento mediante consulta en Mongoose?

Tengo una estructura de datos:

 { field: 1, field: 3, field: [ { _id: xxx , subfield: 1 }, { _id: xxx , subfield: 1 }, ] }

Necesito actualizar cierto elemento en la matriz.

Hasta ahora, solo puedo hacer eso sacando el objeto antiguo y empujando uno nuevo, pero cambia el orden de los archivos.

Mi implementación:

 const product = await ProductModel.findOne({ _id: productID }); const price = product.prices.find( (price: any) => price._id == id ); if(!price) { throw { type: 'ProductPriceError', code: 404, message: `Coundn't find price with provided ID: ${id}`, success: false, } } product.prices.pull({ _id: id }) product.prices.push(Object.assign(price, payload)) await product.save()

y me pregunto si hay alguna forma atómica de implementar eso. Porque este enfoque no parece estar asegurado.

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Sí, puede actualizar un objeto en particular en la matriz si puede encontrarlo. Eche un vistazo al operador posicional '$' aquí .

Su implementación actual usando mongoose será algo así:

 await ProductModel.updateOne( { _id: productID, 'prices._id': id },//Finding Product with the particular price { $set: { 'prices.$.subField': subFieldValue } }, );

Observe el símbolo '$' en los precios.$.subcampo . MongoDB es lo suficientemente inteligente como para actualizar solo el elemento en el índice que encontró la consulta.

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