也可以看看
$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表达式不是必需的,而是可以使用以下查询: