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

MongoDB聚合管道中如何过滤主数组内符合address.zip条件的元素

MongoDB聚合过滤解决方案

场景1:待过滤的是根级独立文档

如果你给出的数组就是聚合管道上一阶段输出的独立文档集合,直接新增$match阶段即可,这是聚合管道过滤文档的标准用法,无需使用$filter:

{
  $match: {
    "address.zip": 2222
  }
}

$match阶段的查询规则和find()的查询参数完全一致,嵌套字段通过点号引用即可实现过滤。

场景2:待过滤的是某字段内的子数组

如果上一阶段输出的是单个文档,所有数据都存储在某个根字段的数组中(例如结构为{ "list": [你的示例数组] }),此时才需要用$filter处理子数组:

{
  $addFields: {
    list: {
      $filter: {
        input: "$list",
        as: "item",
        cond: { $eq: ["$$item.address.zip", 2222] }
      }
    }
  }
}

该用法和官方文档介绍的$filter用于过滤子数组元素的逻辑完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 01:57:06