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

MongoDB如何查询数组字段包含全部指定ObjectId的文档

解决方案

你需要把查询语句中的$in运算符替换为MongoDB专门用于「数组包含所有指定元素」场景的$all运算符即可。

修改后的查询语句如下:

{ 
  subcategories: { 
    $all: [ 
      ObjectId('61729d550e8fe20011cc57d2'), 
      ObjectId('61693f589a34340012b1d5d8'), 
      ObjectId('61693f2c9a34340012b1d5b7') 
    ] 
  } 
}

补充说明

  • $all的筛选逻辑和$in恰好对应:$in要求数组存在至少一个匹配项,$all要求数组包含所有匹配项,完全符合你要求的「缺少任意一个目标ID就不返回文档」的需求。
  • 注意你原来的查询代码存在语法错误,第一个ObjectId调用末尾缺少右括号,修改时记得修正即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 09:45:09