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

MongoDB Compass查询:提取指定字段生成扁平结果表

MongoDB Compass 投影嵌套字段生成扁平表

你需要在MongoDB Compass的Project框中使用以下语句,直接指定嵌套的Tasks.http.seconds和Tasks.ftp.seconds字段,同时排除_id并保留Run、Size,就能得到目标结构的结果:

{
  "_id": 0,
  "Run": 1,
  "Size": 1,
  "Tasks.http.seconds": 1,
  "Tasks.ftp.seconds": 1
}

说明

  • 用.符号直接引用嵌套层级的字段,MongoDB会仅保留你指定的这些字段,Compass中展示的结果会是仅包含目标字段的结构
  • _id:0表示排除默认返回的_id字段,1表示需要保留对应字段

你的示例数据结构

{
  "_id": {
    "$oid": "649f0110adebb5796c3f1af3"
  },
  "Run": "xxxxxxxxxxx",
  "RunElapsedTime": "3505.477",
  "RunStartDate": {
    "$date": "2023-06-30T16:21:36.799Z"
  },
  "RunEndDate": {
    "$date": "2023-06-30T17:20:02.275Z"
  },
  "Size": "63741958281",
  "Tasks": {
    "http": {
      "seconds": 2282.3470537679996,
      "bytes": "63741958281",
      "gb": 59.36432469729334,
      "command": "zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz"
    },
    "ftp": {
      "seconds": 1221.1709856480002,
      "bytes": "63741958281",
      "gb": 59.36432469729334,
      "command": "yyyyyyyyyyyyyyyyyyyyyy"
    }
  }
}

执行上述Project语句后,返回的结果结构如下:

{
  "Run": "xxxxxxxxxxx",
  "Size": "63741958281",
  "Tasks": {
    "http": {
      "seconds": 2282.3470537679996
    },
    "ftp": {
      "seconds": 1221.1709856480002
    }
  }
}

如果需要完全扁平化(将嵌套的秒数字段提取到顶层),可以使用Compass的聚合功能,添加$project阶段:

{
  "$project": {
    "_id": 0,
    "Run": 1,
    "Size": 1,
    "http_seconds": "$Tasks.http.seconds",
    "ftp_seconds": "$Tasks.ftp.seconds"
  }
}

返回的完全扁平结果:

{
  "Run": "xxxxxxxxxxx",
  "Size": "63741958281",
  "http_seconds": 2282.3470537679996,
  "ftp_seconds": 1221.1709856480002
}

内容的提问来源于stack exchange,提问作者jlo-gmail

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 16:12:40