• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

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

about 3 years ago · Santiago Trujillo
1 answers
Answer question

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

about 3 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error