You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 23:39:01