如何编写MongoDB查询语句筛选CITY为BIHAR且region为null的记录
MongoDB嵌套数组多条件查询方案
你需要的正确查询语句如下:
db.collection.find({ "details.Address": { $elemMatch: { "CITY": "BIHAR", "region": null } } })
逻辑说明
- 采用MongoDB内置的
$elemMatch操作符,专门用于匹配数组中至少存在1个元素同时满足所有指定筛选条件 - 嵌套字段路径
details.Address精准定位到需要筛选的数组成员 - 数组元素内部的两个筛选条件
CITY: "BIHAR"和region: null会作用在同一个元素上,完全符合需求 - 针对你提供的示例数据,该查询会正确返回Name为Anil和Kumar的两条符合要求的记录
避坑提示:不要将两个条件拆开写,如下是错误写法,会匹配数组里不同元素分别满足两个条件的情况,无法保证两个条件作用在同一个地址元素上:
// 错误示例 db.collection.find({ "details.Address.CITY": "BIHAR", "details.Address.region": null })
内容的提问来源于stack exchange,提问作者Kumar
相关产品推荐
相关产品推荐

