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

MongoDB如何查询多维数组中特定位置含指定值的文档

MongoDB 查询嵌套数组指定位置包含特定值的文档

要实现你需要的查询,MongoDB支持用**数组全位置操作符$[]**结合点符号来匹配嵌套数组的指定索引位置,替代你设想的*通配符(MongoDB不支持用*作为数组通配符)。具体用法如下:

示例1:查询嵌套数组位置1包含"b1"的文档

使用以下查询语句,会返回_id为1和2的文档:

db.collection.find({ "array.$[].1": "b1" })

说明:array.$[]表示匹配外层array中的所有子数组元素,.1指定了子数组的索引位置为1,这条语句会筛选出外层数组中至少有一个子数组的索引1位置值为"b1"的文档。

示例2:查询嵌套数组位置0包含"b1"的文档

使用以下查询语句,会返回_id为3的文档:

db.collection.find({ "array.$[].0": "b1" })

说明:同理,.0指定子数组的索引位置为0,这条语句会筛选出外层数组中至少有一个子数组的索引0位置值为"b1"的文档。

补充说明

MongoDB的数组通配符并非*,而是$[](全位置操作符),它用于匹配数组中的所有元素,这样就能遍历外层数组的每个子数组,再通过索引定位到子数组的特定位置进行值匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 14:12:37