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

MongoDB如何查询数组同时包含多个指定属性值的文档

实现查询的MongoDB命令

你可以直接使用以下两种写法实现需求,均可以筛选出fruit数组同时包含red和green颜色元素的文档:

写法1:简洁版(适配当前单字段匹配场景)

// 请将yourCollectionName替换为你实际的集合名称
db.yourCollectionName.find({
  $and: [
    { "fruit.fruit_color": "red" },
    { "fruit.fruit_color": "green" }
  ]
})

逻辑说明

直接对数组嵌套字段做值匹配时,MongoDB会判定数组中存在任意一个元素满足条件即返回true,通过$and组合两个匹配条件,就要求数组必须同时存在两种颜色的元素,符合你的查询要求。

写法2:通用扩展版(适配多条件匹配场景)

// 请将yourCollectionName替换为你实际的集合名称
db.yourCollectionName.find({
  fruit: {
    $all: [
      { $elemMatch: { fruit_color: "red" } },
      { $elemMatch: { fruit_color: "green" } }
    ]
  }
})

逻辑说明

  • $elemMatch用于精准匹配数组内的单个元素,如果你后续需要新增其他匹配规则(比如同时要求fruit_id满足特定格式),直接在$elemMatch内新增字段即可
  • $all要求数组必须包含所有指定的$elemMatch匹配结果,刚好满足同时存在两种颜色的要求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 07:57:03