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

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

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