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

164
Vistas
MongoDB: actualización masiva de valores en matrices de objetos anidados

Tengo una colección en MongoDB que representa las tareas que los niños deben hacer cada día y si las han terminado. Aquí hay un ejemplo de un documento.

 { "_id":"2022-02-13:joe", "kidName":"Joe", "chores": [ {"chore":"Breakfast: clear dishes and utensils","done":true}, {"chore":"Clearing dishes after meals","done":true}, {"chore":"Put away coats, knapsack, and shoes","done":true}, {"chore":"Clear toys","done":true} ], "date": 2022-02-13T00:00:00.000+00:00 }

Quiero cambiarlo para que, en lugar de un valor booleano, done sea un número entero, donde:

Significado valor
Hecho 1
no hecho -1
No notificado 0

¿Hay algún canal o truco en Compass para hacer esto con todos los documentos de la colección?

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

0

Puede usar el método de actualización con canalización de agregación para actualizar la matriz de tareas. Necesitaría usar la siguiente canalización para lograr los resultados deseados:

 db.collection.updateMany( { 'chores.0': { '$exists': true } }, [ { '$set': { 'chores': { '$map': { 'input': '$chores', 'as': 'chore', 'in': { '$mergeObjects': [ '$$chore', { 'done': { '$switch': { 'branches': [ { 'case': { $eq: [ '$$chore.done', true ] }, then: 1 }, { 'case': { $eq: [ { $ifNull: ['$$chore.done', 'Unmarked'] }, 'Unmarked' ] }, then: 0 }, { 'case': { $eq: [ '$$chore.done', false ] }, then: -1 }, ], default: 0 } } } ] } } } } } ] )
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