MongoDB聚合:如何从每个桶中选择第一个文档?



聚合阶段如下:

[
{ $match: { ...someFilters } },
{ $sort: { createdOn: -1 } },
{ 
$bucket: { 
groupBy: $somePropertyInDoc,
output: {
DO_SOMETHING_TO_PICK_FIRST_DOC_IN_THE_BUCKET
}
} 
}
]

我假设桶是基于output属性中指定的内容进行转换的文档数组。

是否有办法从每个桶中选择/输出第一个文档?

输出字段接受累加运算符,因此您可以使用$first:

{$bucket:{
...
output: {document: {$first:"$$ROOT"}}
...
}}

游乐场

最新更新