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

167
Visualizações
¿Cómo acceder limpiamente a campos profundamente incrustados en pymongo?

Mis documentos se almacenan en el formato sysstat.host.statistics.timestamp[].cpu-load-all.cpu[].usr , donde timestamp es una matriz de 30 elementos y cpu es una matriz de 1 a 64 elementos.

ingrese la descripción de la imagen aquí

Si tomo el campo de timestamp de tiempo,

 timestampCursor = HOST_USAGE.find( {'sysstat.host.nodename': host}, {'sysstat.host.statistics.timestamp': 1})

¿Cómo puedo acceder a sysstat.host.statistics.timestamp[*].cpu-load-all.cpu[0].usr de forma limpia? ¿Tengo que acceder a cada campo indexando cada matriz y, por lo tanto, varias iteraciones sobre cada campo de matriz?

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Sí, debe acceder a cada campo indexando cada matriz y, por lo tanto, múltiples iteraciones sobre cada campo de matriz.

 for doc in timestampCursor: sysstat = doc['sysstat'] for ts in sysstat['host']['statistics']['timestamp']: for cpu in ts['cpu-load-all']['cpu']: usr = cpu['usr'] # Now, sum or average the 'usr' values, or whatever # you intend to do.

Como alternativa, para agregar los datos del lado del servidor, puede usar $unwind con $sum o $average o alguna otra operación de agrupación con MongoDB Aggregation Framework.

 HOST_USAGE.aggregate([{ '$match': {'sysstat.host.nodename': 1} }, { # Rename the field for brevity. '$project': {'ts': '$sysstat.host.statistics.timestamp'} }, { '$unwind': '$ts' }, { '$unwind': '$ts.cpu-load-all.cpu' }, { '$group': { '_id': 0, 'all-usr': {'$sum': '$ts.cpu-load-all.cpu.usr'} } }])))
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