On this page本页内容
$switch¶New in version 3.4.版本3.4中的新功能。
Evaluates a series of case expressions. 计算一系列大小写表达式。When it finds an expression which evaluates to 当它找到一个计算结果为true, $switch executes a specified expression and breaks out of the control flow.true的表达式时,$switch执行一个指定的表达式并中断控制流。
$switch has the following syntax:语法如下所示:
The objects in the branches array must contain only a case field and a then field.branches数组中的对象必须仅包含case字段和then字段。
branches |
|
default |
|
The various case statements do not need to be mutually exclusive. 各种案例陈述不需要相互排斥。$switch executes the first branch it finds which evaluates to 执行它找到的第一个计算结果为true. true的分支。If none of the branches evaluates to true, 如果没有一个分支的计算结果为$switch executes the default option.true,$switch将执行默认选项。
The following conditions cause 以下情况会导致$switch to fail with an error:$switch失败并出现错误:
branches field is missing or is not an array with at least one entry.branches字段缺失或不是至少有一个条目的数组。branches array does not contain a case field.branches数组中的对象不包含大小写字段。branches array does not contain a then field.branches数组中的对象不包含then字段。branches array contains a field other than case or then.branches数组中的对象包含除case或then之外的字段。default is specified and no case evaluates to true.default,也没有case计算为true。"less than" | |
"Did not match" | |
"First case" |
A collection named 名为grades contains the following documents:grades的集合包含以下文档:
The following aggregation operation uses 下面的聚合操作使用$switch to display a particular message based on each student’s average score.$switch根据每个学生的平均分数显示特定消息。
The operation returns the following:该操作返回以下内容:
See also参阅