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

408
Vistas
MongoDB v5.0.5 hace referencia al campo existente en updateMany()

Es la primera vez que uso MongoDB y tengo un problema con el que agradecería ayuda, por favor.

Digamos que tengo una colección llamada "estudiantes" con documentos en la colección estructurados de la siguiente manera:

 { "_id": ObjectId("12345"), "Name": "Joe Bloggs", "Class_Grade": "b" "Homework_Grade": "c", }

Quiero crear un documento incrustado llamado "Grades" que contenga los campos de calificación de la clase y la tarea y lo aplique a todos los documentos de la colección para terminar con:

 { "_id": ObjectId("12345"), "Name": "Joe Bloggs", "Class_Grade": "b" "Homework_Grade": "c", "Grades": { "Class_Grade": "b", "Homework_Grade": "c", } }

He estado tratando de lograr esto usando updateMany() en MongoShell:

 db.students.updateMany({}, {$set: {Grades: {"Class_Grade": $Class_Grade, "Homework_Grade": $Homework_grade"}}})

Sin embargo, al hacerlo, recibo un error de referencia: $Class_Grade no está definido. Intenté modificar la referencia a $students.Class_Grade y recibí el mismo error.

Su consejo sería muy apreciado

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Hay algunos errores en su consulta,

  1. si desea usar el valor del campo interno existente, debe usar una actualización con canalización de agregación a partir de MongoDB 4.2, debe envolver la parte de actualización en el corchete adjunto [], ya que agregué la consulta.

  2. use una cita en el nombre del campo que desea usar del campo interno, por ejemplo: "$Class_Grade"

  3. ha usado el campo $Homework_grade y en sus documentos G es mayúscula en Grade , así que intente usar el nombre de campo exacto $Homework_Grade

 db.students.updateMany({}, [ { $set: { Grades: { "Class_Grade": "$Class_Grade", "Homework_Grade": "$Homework_Grade" } } } ])

Patio de recreo

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