如何在MongoDB嵌套数组样例数据中查询指定id的选定字段
MongoDB查询实现方案
假设你的集合名称为your_collection_name,需要查询id为0001的条目,可使用如下聚合查询语句:
db.your_collection_name.aggregate([ // 过滤包含目标id条目的父文档,缩小查询范围,非必需但可提升大集合查询效率 { $match: { "data.id": "0001" } }, // 拆分data数组,将每个数组成员转为独立的单条文档 { $unwind: "$data" }, // 精准匹配目标id对应的条目 { $match: { "data.id": "0001" } }, // 格式化输出字段,只保留需要的四个字段 { $project: { _id: 0, id: "$data.id", type: "$data.type", name: "$data.name", ppu: "$data.ppu" } } ])
调整说明
- 将语句中的
your_collection_name替换为你实际使用的集合名即可执行 - 如需查询其他id的条目,将两个
$match阶段中的"0001"替换为目标id值即可 - 若集合数据量很小,可省略第一个
$match阶段,不影响最终查询结果
内容的提问来源于stack exchange,提问作者Muhammad Khan
相关产品推荐
相关产品推荐

