MongoDB嵌套文档查询:筛选内置存储为128GB的设备文档
修正后的MongoDB查询语句
要精准匹配同一detailSpec元素下同时满足category: "Memory"、其specifications数组中存在name: "Internal"且value包含128GB的文档,你需要用$elemMatch来关联嵌套数组的多条件约束,避免跨元素匹配的问题。
正确查询语句
db.your_collection_name.find({ "detailSpec": { "$elemMatch": { "category": "Memory", "specifications": { "$elemMatch": { "name": "Internal", "value": /128GB/ // 模糊匹配,若需精确匹配可直接写"128GB" } } } } })
关键说明
- 外层
$elemMatch:确保筛选的是同一个detailSpec元素,同时满足category为Memory,且该元素下的specifications符合后续条件。 - 内层
$elemMatch:确保specifications数组中存在同一个元素,同时满足name为Internal、value包含128GB。 - 如果需要区分大小写的模糊匹配,可将正则调整为
/128GB/i;若偏好字符串形式的正则匹配,替换为"value": {"$regex": "128GB"}同样生效。
内容的提问来源于stack exchange,提问作者universe_u
相关产品推荐
相关产品推荐

