Skip to main content

🦸‍♂️ 重复阶段

info

额外活动:如果您有额外的时间或在家跟着做,可以尝试,导师不会在动手实验中进行讲解

Aggregation Pipelines 手册 中引用:

除了 $out, $merge, $geoNear, $changeStream 和 $changeStreamSplitLargeEvent 阶段外,其他所有阶段都可以在一个管道中多次出现。

因此我们可以重复大多数阶段,并做类似于以下操作,以获取1985年且页数超过100页的所有书籍(尽管这可能有意义或没有意义)

[
{
$match: { pages: {$gte: 100} }
},
{
$match: { year: 1985 }
}
]

💻 在上述聚合的末尾添加几个 $limit 阶段,限制为1本书,看看会发生什么

答案
[
{$match: {pages: {$gte: 100}}},
{$match: {year: 2011}},
{$limit: 1},
{$limit: 1},
]