MongoDB数组结构规范化:如何拼接time与sv字段转换数据格式
字段拼接与JSON结构转换实现方案
需求说明
将原始嵌套结构中的time字段和sv下的多层key拼接,转换为「标准化时间戳为key、对应数值为value」的扁平化结构。
原始输入结构
{ "data": [ { "time": "1998-08-31T03", "sv": { "05": { "13": 0, "14": 1 } } } ] }
预期输出结构
{ "data" : { "1998-08-31T03:05:13Z": 0, "1998-08-31T03:05:14Z": 1 } }
核心实现逻辑
- 遍历原始
data数组的每一项,取出time字段作为时间前缀 - 逐层遍历
sv字段的嵌套结构:第一层key为分钟值,第二层key为秒值,第二层value为最终对应数值 - 按
{时间前缀}:{分钟值}:{秒值}Z的格式拼接生成最终的key,和对应数值成对存入新的data对象中即可
Python 实现代码示例
def transform_structure(raw_data): res = {"data": {}} for entry in raw_data["data"]: time_prefix = entry["time"] sv_map = entry["sv"] # 遍历sv第一层(分钟维度) for minute, second_map in sv_map.items(): # 遍历sv第二层(秒和对应数值维度) for second, value in second_map.items(): full_time_key = f"{time_prefix}:{minute}:{second}Z" res["data"][full_time_key] = value return res # 调用测试 raw_input = { "data": [ { "time": "1998-08-31T03", "sv": { "05": { "13": 0, "14": 1 } } } ] } print(transform_structure(raw_input))
其他语言实现说明
所有支持嵌套对象遍历、字符串拼接的编程语言都可以按上述逻辑实现,没有特殊依赖,核心就是三层遍历+字符串拼接的逻辑。
内容的提问来源于stack exchange,提问作者bc110402922
相关产品推荐
相关产品推荐

