• Empleos
  • Sobre nosotros
  • profesionales
    • Inicio
    • Empleos
    • Cursos y retos
    • Preguntas
    • Profesores
  • empresas
    • Inicio
    • Publicar vacante
    • Nuestro proceso
    • Precios
    • Pruebas Online
    • Nómina
    • Blog
    • Comercial
    • Calculadora de salario

0

123
Vistas
¿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?

about 3 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

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'} } }])))
about 3 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 Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recomiéndame algunas ofertas
Necesito ayuda