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

MongoDB如何同时查询匹配字符串和字符串数组类型的嵌套字段

错误原因

你写的查询语句属于嵌套文档精确匹配规则:当你直接给favorite.foods赋值一个对象作为查询条件时,MongoDB会要求文档的favorite.foods字段结构、键值对完全和查询参数一致,同时查询运算符$all不能直接作为嵌套对象的属性值参与精确匹配,因此无法命中_id为1的文档。

正确查询方案

如果你的需求是查询同时满足favorite.foods.fruits值为banana,且favorite.foods.fastfood数组同时包含burger和sandwich的文档,使用点运算符单独指定每个嵌套字段的查询条件即可:

db.collectionName.find({
  "favorite.foods.fruits": "banana",
  "favorite.foods.fastfood": {
    "$all": ["burger", "sandwich"]
  }
})

如果不需要限制fruits的取值,只需要匹配fastfood数组的条件,删除fruits对应的查询条件即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 08:45:09