【发布时间】:2023-03-15 15:22:01
【问题描述】:
[
{
$match: {
$and: [
{
$or: [
{ assignee: 'eaa68f83-5024-4a8e-93f0-4b849d598585' },
{ parent: 'eaa68f83-5024-4a8e-93f0-4b849d598585' },
],
},
{ $and: [{ stage: 'COMPLETE' }] },
],
},
},
{ $group: { _id: null, valueSet: { $addToSet: '$_id' } } },
{ $project: { key: null, value: { $size: '$valueSet' } } },
]
由于记录数 ($_id) 很大,我得到以下错误。
$addToSet 使用了太多内存,无法溢出到磁盘。内存限制:104857600字节
有什么解决办法吗?
【问题讨论】:
-
这是聚合的一部分吗?如果是这样,请提供完整的汇总和文档样本。如果没有,只需对您的收藏进行计数,就像这段代码一样。
-
@matthPen 更新了 sn-p。组前有比赛阶段
-
你能提供一些文档样本吗?
-
@matthPen 这里是示例 - mongoplayground.net/p/DjgEBXEDxrg 问题是文档数为 4M+,因此 $addToSet 操作失败。
-
尝试添加
{ "allowDiskUse" : true }
标签: mongodb mongodb-query aggregation-framework