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

407
Visualizações
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 Respostas
Responde à pergunta

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 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