也可以看看
$elemMatch
¶所述$elemMatch
操作者匹配包含与匹配的所有指定的查询标准中的至少一个元素的数组字段的文档。
如果仅<query>
在$elemMatch
表达式中指定一个条件,则
无需使用
$elemMatch
。
$where
表达式
$elemMatch
。$text
查询表达式
$elemMatch
。给定scores
集合中的以下文件:
以下查询仅匹配results
数组包含至少一个大于或等于80
且小于的元素的那些文档85
。
该查询返回以下文档,因为该元素82
大于或等于80
且小于85
有关在数组元素上指定多个条件的更多信息,请参见为数组元素指定多个条件。
给定survey
集合中的以下文件:
下面的查询仅那些文档,其中匹配results
数组包含与两个的至少一种元素product
等于
"xyz"
和score
大于或等于8
。
具体来说,查询与以下文档匹配:
如果在$elemMatch
表达式中指定单个查询谓词,$elemMatch
则没有必要。
例如,考虑以下示例,其中$elemMatch
仅指定一个查询谓词:{ product: "xyz" }
由于$elemMatch
仅指定一个条件,因此该
$elemMatch
表达式不是必需的,而是可以使用以下查询: