es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo actualizar objetos en el array de un documento (mongodb)

Assuming the code and output are not to be translated, the translation would be:

Tengo el siguiente documento:

{
name: ‘cualquier-nombre’,
array: [
{ _id: ‘cualquier-id’, a: ‘cualquier-dato-a’, b: ‘cualquier-dato-b’, c: ‘cualquier-dato-c’ },
…más objetos
]
}

Quiero llamar al método updateOne y actualizar todo el objeto en el array con _id = ‘cualquier-id’ con el siguiente objeto

{ a: ‘nuevo-dato-a’, b: ‘nuevo-dato-b’, c: ‘nuevo-dato-c’ }

así que el resultado será:

{
name: ‘cualquier-nombre’,
array: [
{ _id: ‘cualquier-id’, a: ‘nuevo-dato-a’, b: ‘nuevo-dato-b’, c: ‘nuevo-dato-c’ },
…más objetos
]
}

Estoy intentando algo como:

model.updateOne(
{ ‘array._id’: _id },
{ $set: { ‘array.$’: data } }
)

data = { a: ‘nuevo-dato-a’, b: ‘nuevo-dato-b’, c: ‘nuevo-dato-c’ }

¿Alguien puede ayudarme?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Puede usar el método updateOne para actualizar todo el objeto en el array con _id = 'cualquier-id' con el siguiente objeto:

    { a: 'nuevos-datos-a', b: 'nuevos-datos-b', c: 'nuevos-datos-c' }
    

    La sintaxis para el método updateOne sería:

    model.updateOne(
          { 'array._id': _id }, 
          { $set: { 'array.$': data } }
        )
    

    donde data es el objeto que desea actualizar. El resultado de esta operación sería:

    {
      name: 'cualquier-nombre',
      array: [
        { _id: 'cualquier-id', a: 'nuevos-datos-a', b: 'nuevos-datos-b', c: 'nuevos-datos-c' },
        ...más objetos
      ]
    }
    

Comments are closed.