MongoDB如何查询包含指定carrier_id值的数组元素所属的公司文档
MongoDB 匹配数组嵌套字段查询方案
你可以直接使用MongoDB的嵌套数组字段点查询语法实现需求,这是最简单的实现方式:
// 替换<集合名>为你的实际集合名,替换<目标carrier_id>为你要查询的id值 db.<集合名>.find({ "carriers.carrier_id": "<目标carrier_id>" })
这种写法会自动遍历carriers数组的所有元素,只要有任意一个元素的carrier_id等于目标值,就会返回对应的公司文档。
如果你后续需要对数组内同一个元素匹配多个条件(比如同时要求priority为1且carrier_id匹配),可以使用$elemMatch运算符,单条件场景下两种写法效果和性能完全一致:
db.<集合名>.find({ carriers: { $elemMatch: { carrier_id: "<目标carrier_id>" // 可追加同元素的其他匹配条件,如 priority: 1 } } })
内容的提问来源于stack exchange,提问作者realtebo
相关产品推荐
相关产品推荐

