如何在MongoDB中查询名称含点运算符的嵌套字段?
解决MongoDB字段名含点的查询问题
当文档中字段名本身包含点运算符(比如performance_data下的"campaign.ad_serving_optimization_status"是一个完整键,而非嵌套对象路径),直接使用.分隔的路径查询会被MongoDB误解析为嵌套结构,导致查询失败。
你可以通过以下两种方式正确查询:
方式一:用引号包裹带点的字段名
将带点的字段名作为字符串,放在performance_data的对象中,明确告诉MongoDB这是一个独立键:
{"performance_data": {"campaign.ad_serving_optimization_status": "ACTIVE"}}
方式二:使用$expr表达式查询
通过聚合表达式直接引用完整的字段路径,避免MongoDB解析点为嵌套层级:
{$expr: {$eq: ["$performance_data.campaign.ad_serving_optimization_status", "ACTIVE"]}}
两种方法都能让MongoDB正确识别"campaign.ad_serving_optimization_status"是performance_data下的单个键,从而筛选出目标文档。
内容的提问来源于stack exchange,提问作者Arun Shankar
相关产品推荐
相关产品推荐

