You need to enable JavaScript to run this app. MongoDB查询:筛选数组字段包含输入数组所有元素的文档
优惠活动
大模型
产品
解决方案
定价
更多

MongoDB查询:筛选数组字段包含输入数组所有元素的文档

解决方案

你需要使用MongoDB的$all数组查询操作符,直接在find()方法中使用即可,无需调用聚合管道。

实现代码

db.exercises.find({
  muscleGroups: { $all: inputMuscleGroups }
})

逻辑说明

  • $all操作符的作用是:要求查询字段(此处为muscleGroups)的数组值,必须包含$all后跟随的输入数组中的全部元素,元素顺序不影响匹配结果
  • 你之前使用的$in操作符仅要求数组包含输入数组的任意一个元素即可匹配,因此不符合全包含的筛选需求

测试用例匹配验证

  • 当inputMuscleGroups = ["Abs"]时:所有文档的muscleGroups都包含Abs,返回全部3条文档,符合预期
  • 当inputMuscleGroups = ["Abs", "Biceps"]时:Push Ups、Pull Ups的数组同时包含两个元素,Sit Ups缺少Biceps被过滤,返回结果符合预期
  • 当inputMuscleGroups = ["Abs", "Shoulders", "Chest"]时:仅有Push Ups的数组包含全部三个元素,返回结果符合预期

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 12:24:03