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

MongoDB查询:移除数组文档的std字段并过滤空subjects数组

MongoDB 文档字段处理解决方案

可以用聚合框架的$project结合$map、$cond来实现需求,具体查询语句如下:

db.collection.aggregate([
  {
    $project: {
      school: {
        $map: {
          input: "$school",
          as: "item",
          in: {
            student: "$$item.student",
            subjects: {
              $cond: {
                if: { $gt: [ { $size: "$$item.subjects" }, 0 ] },
                then: "$$item.subjects",
                else: "$$REMOVE"
              }
            }
          }
        }
      }
    }
  }
])

语句说明:

  • $aggregate:启动聚合管道处理文档
  • $project:重新构造输出结构,只保留处理后的school数组
  • $map:遍历school数组里的每个学生对象,逐个处理
  • $cond + $size:判断subjects数组长度是否大于0,只有非空时才保留该字段;空数组时用$$REMOVE直接移除字段
  • 未显式声明std字段,所以自动从输出中排除,实现移除std的要求

执行这个查询后,就能得到你想要的结果:移除所有学生对象的std字段,且空的subjects字段会被自动隐藏。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 06:05:23