Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

114
Vistas
Actualice múltiples elementos de la matriz en el documento mongodb con el elemento apropiado de la matriz javascript

Tengo una matriz de objetos con la siguiente estructura:

 const myArr = [{ 'name':'question1', 'grade':6 }, { 'name':'question2', 'grade':7 }]

colección de preguntas :

 { _id:623749f845844e7d273d801c, questions:[ { 'name':'question1', 'grade':10, 'someInfo':'blabla', _id:623749f845844e7d273d801m }, { 'name':'question2', 'grade':10, 'someInfo':'blabla', _id:623749f845844e7d273d801a }, { 'name':'question3', 'grade':10, 'someInfo':'blabla', _id:623749f845844e7d273d801f } ] }

Solo quiero actualizar todos los objetos en las questions de la matriz en la colección que proporcioné en la matriz myArr . Entonces el resultado deseado debería ser:

 { _id:623749f845844e7d273d801c, questions:[ { 'name':'question1', 'grade':6, 'someInfo':'blabla', _id:623749f845844e7d273d801m }, { 'name':'question2', 'grade':7, 'someInfo':'blabla', _id:623749f845844e7d273d801a }, { 'name':'question3', 'grade':10, 'someInfo':'blabla', _id:623749f845844e7d273d801f } ] }

Lo que he encontrado hasta ahora:

Logré actualizar grade cuando especifico el question name con el operador posicional:

 await Prijave.updateOne( { _id: mongoose.Types.ObjectId(q_id), 'questions.name': 'question1', }, { $set: { 'questions.$.grade': '10', }, } )

Pero, ¿cómo hacer esto para cada elemento en myArr ? Podría hacer un bucle forEach que itera a través myArr y llamar a updateOne para cada elemento, pero no creo que deba hacerse de esa manera porque hará una conexión múltiple a la base de datos en lugar de una.

about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda