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

142
Vistas
Actualizar clave en documento anidado

Me gustaría actualizar las claves del objeto "valores" en el siguiente documento almacenado en una colección MongoDB:

 { "data": { "name": "Doe", "values": { "AA_Avg": 13, "BB_Avg": 19, "CC_Avg": 18 } } }

Para que quede así:

 { "data": { "name": "Doe", "values": { "AA_MT": 13, "BB_MT": 19, "CC_MT": 18 } } }
over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Actualización dinámica, puede usar la actualización con canalización de agregación a partir de MongoDB 4.2,

Primer enfoque: usando $rpelaceOne ,

  • $objectToArray convierte data.values de objeto a matriz en formato k y v
  • $map para iterar el bucle de la matriz convertida anterior
  • $replaceOne reemplazará la cadena en la base de entrada y reemplazo
  • $arrayToObject de nuevo para convertir de matriz a objeto
 db.collection.update({}, [{ $set: { "data.values": { $arrayToObject: { $map: { input: { $objectToArray: "$data.values" }, in: { k: { $replaceOne: { input: "$$this.k", find: "Avg", replacement: "MT" } }, v: "$$this.v" } } } } } } ])

Patio de recreo


Segundo enfoque: usar $split , $arrayElemAt , $concat ,

Patio de recreo

over 4 years ago · Santiago Trujillo Denunciar

0

Puede usar la función $rename esta manera:

Es simple, solo tienes que decir qué campo quieres actualizar y el nuevo valor.

Tenga en cuenta que debido a los objetos anidados, debe usar la notación de puntos como se explica en los documentos

MongoDB usa la notación de puntos para acceder a los elementos de una matriz y para acceder a los campos de un documento incrustado .

 db.collection.update({}, { "$rename": { "data.values.AA_Avg": "data.values.AA_MT", "data.values.CC_Avg": "data.values.BB_MT", "data.values.DD_Avg": "data.values.CC_MT" } })

Ejemplo aquí

over 4 years ago · Santiago Trujillo Denunciar
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