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

MongoDB查询嵌入式文档指定值且不返回父级文档结构

你之前的写法存在两个问题:一是过滤条件错误,qty是people数组内的嵌套字段,过滤时要写全路径people.qty;二是普通find查询只能保留原有文档结构,无法把数组内的元素拆分为独立的顶层文档,也无法将嵌套字段提取到根层级,因此需要使用MongoDB聚合管道实现,完整查询语句如下:

db.collection.aggregate([
  // 第一步:过滤出包含people.qty为"5"的父文档,减少后续处理数据量
  {
    $match: {
      "people.qty": "5"
    }
  },
  // 第二步:拆分people数组,每个数组元素对应生成一条独立文档
  {
    $unwind: "$people"
  },
  // 第三步:过滤拆分后qty不等于"5"的无效文档
  {
    $match: {
      "people.qty": "5"
    }
  },
  // 第四步:指定返回字段,将嵌套的id、qty提升到根层级,去除不需要的字段
  {
    $project: {
      _id: 0,
      name: 1,
      id: "$people.id",
      qty: "$people.qty"
    }
  }
])

执行上述语句即可得到你期望的输出结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 22:36:03