我有以下收集对象:
pictureId: <String>
groupId: <String>
...
我有一个非常复杂的聚合,可以计算上载时间和登录时间。
API之一是按给定的pictureId
来检索groupId
。
[...
{
$match: {
$expr: { $in: ["$groupId", groupIds] }
}
}
...]
当我得到groupIds
作为输入时,这很简单。
如何通过分页方式获取groupId
来执行聚合?
例如,查询10个不同组中的pictureId
,然后查询下10个,依此类推。
我只能通过在汇总之前执行不同的查询来明确查询groupId
的值并将其发送到aggregate
来解决这个问题。
编辑
最终结果应将groupId
分组,以便每个分组显示pictureId
。
没有groupIds
输入的情况下如何执行聚合?
因此,聚合一次将返回5个组。
{
pictureId: "1",
groupId: "1",
createdAt: ...,
tags: [...],
...
},{
pictureId: "2",
groupId: "1",
createdAt: ...,
tags: [...],
...
},{
pictureId: "3",
groupId: "1",
createdAt: ...,
tags: [...],
...
},{
pictureId: "4",
groupId: "2",
createdAt: ...,
tags: [...],
...
}