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

如何在MongoDB中查询时直接获取扁平化的字典子字段结果?

MongoDB查询:提取嵌套字段为顶层字段

你的需求是将文档中嵌套在titles和work_ids里的字段直接提升到顶层,而非保留原嵌套结构。直接使用find的投影参数无法实现字段层级的扁平化,需要借助聚合管道的$project阶段来重命名字段。

解决方案:使用聚合管道的$project

以下是满足需求的聚合查询语句:

db.collection.aggregate([
  { $match: { /* 此处填写你的查询条件,对应原find方法里的query参数 */ } },
  {
    $project: {
      _id: 0,
      full_name: "$titles.full_name",
      plasma_id: "$work_ids.plasma_id"
    }
  }
])

语句解释

  • $match阶段:用于过滤符合条件的文档,功能和find方法的第一个参数完全一致。如果不需要过滤文档,可以直接省略这个阶段。
  • $project阶段:
    • _id: 0:设置为0表示排除默认返回的_id字段。
    • full_name: "$titles.full_name":将嵌套在titles下的full_name字段,重命名并提取为顶层的full_name字段。
    • plasma_id: "$work_ids.plasma_id":同理,把work_ids下的plasma_id提取为顶层字段。

查询结果

执行上述语句后,会得到你期望的扁平化结构:

{ "full_name" : "full name", "plasma_id" : "METRO_3423659" }

内容的提问来源于stack exchange,提问作者Arturo Elizalde

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 12:10:36