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参阅