面试题答案
一键面试在MongoDB中,可以使用以下聚合框架和数组表达式来解决这个问题:
[
{
"$project": {
"filteredItems": {
"$filter": {
"input": "$items",
"as": "item",
"cond": { "$gt": [ "$$item.quantity", 4 ] }
}
}
}
}
]
$project
阶段:用于选择输出的字段,并使用$filter
数组表达式来筛选items
数组中的元素。$filter
表达式:input
指定要过滤的数组,这里是$items
,即文档中的items
数组。as
给数组中的每个元素定义一个别名,这里是item
。cond
是过滤条件,使用$gt
比较运算符,判断当前元素(通过$$item
引用)的quantity
字段是否大于4。满足条件的元素将被保留在filteredItems
数组中。