MongoDB中如何在嵌套对象数组场景下使用$or组合多条件查询
解决方案:将第三个条件加入MongoDB的
$or查询 没问题!你只需要把第三个条件作为新的对象添加到$or数组中,利用$elemMatch操作符来匹配嵌套数组里的复合条件。具体的查询语句如下:
cursor = record1.find({ "$or": [ {"City": "Berlin"}, {"mode": "greyscale"}, {"overlaps": { "$elemMatch": { "BB1": "itemA", "BB2": "itemC" } }} ] })
关键说明:
$elemMatch用于指定数组中至少有一个元素满足所有给定的查询条件,正好契合你“overlaps数组中至少存在一个元素同时满足BB1="itemA"且BB2="itemC"”的需求。- 这个查询会匹配以下几类文档:
- City为Berlin的文档(对应
photo4.png) - mode为greyscale的文档(对应
photo3.png、photo5.png) - overlaps数组里包含同时符合
BB1=itemA且BB2=itemC元素的文档(对应photo2.png、photo4.png)
- City为Berlin的文档(对应
这样就能一次性覆盖你要求的三个任一条件啦。
内容的提问来源于stack exchange,提问作者Kalanit
相关产品推荐
相关产品推荐

