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

如何编写MongoDB查询获取值数组含指定元素的键值对

MongoDB 筛选数组内嵌套字段匹配指定值的查询写法

你当前场景下的文档结构参考如下:

{
  "k": "自定义键标识",
  "v": [
    {"n": "1234", "desc": "匹配示例元素"},
    {"n": "5678", "desc": "不匹配元素"}
  ]
}

基础查询写法(满足当前需求)

直接使用点语法指向数组内的嵌套字段做等值匹配即可,MongoDB会自动遍历数组元素做校验,只要数组内存在任意一个元素的n字段值为"1234",对应的文档就会被返回:

// 将yourCollection替换为你实际的集合名称
db.yourCollection.find({
  "v.n": "1234"
})

扩展场景说明

  • 如果你后续需要匹配同一个数组元素同时满足多个条件(例如元素的n为"1234"且status字段为"valid"),需要使用$elemMatch运算符,避免出现跨元素匹配的逻辑错误,写法示例:
db.yourCollection.find({
  "v": {
    $elemMatch: {
      "n": "1234",
      "status": "valid"
    }
  }
})
  • 仅单条件匹配数组内字段时,不需要使用$elemMatch,直接使用点语法的查询性能更优。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 03:18:16