gpt4 book ai didi

mongodb - mongo 聚合结果超出最大文档大小

转载 作者:IT老高 更新时间:2023-10-28 13:13:59 26 4
gpt4 key购买 nike

我使用 mongo 聚合函数在集合中查找重复文档,其中集合如下所示:

{_id, placement_id, placement_name, program_id, target}

我需要找到除了_id和placement_id之外具有完全相同字段的所有文档,所以这两个文件是一样的:

{_id:3, placement_id:23, placement_name:"pl1", program_id:5, target:"-"}
{_id:7, placement_id:55, placement_name:"pl1", program_id:5, target:"-"}

我想出的聚合函数是:

db.placements.aggregate({$group:{_id:{placement_name:"$placement_name", program_id:"$program_id", target:"$target"}, total:{$sum:1}}},{$match:{total:{$gte:2}}});

然后mongo刚刚返回:

Error: Printing Stack Trace
at printStackTrace (src/mongo/shell/utils.js:37:15)
at DBCollection.aggregate (src/mongo/shell/collection.js:897:9)
at (shell):1:15
Wed Apr 2 07:43:23.090 aggregate failed: {
"errmsg" : "exception: aggregation result exceeds maximum document size (16MB)",
"code" : 16389,
"ok" : 0
} at src/mongo/shell/collection.js:898

聚合是正确的,我在一个较小的集合上对其进行了测试,它工作正常,但生产集合有大约 80M 文档。我想知道在 80M 文档上尝试 find() 函数时,它可以工作并要求您输入“它”以获取更多记录。聚合函数怎么没有这个能力?我还尝试将 limit() 附加到聚合函数的末尾,但它也不起作用。有什么解决办法吗?谢谢。

最佳答案

how come aggregate function don't have this capability?

它在 2.6 中会很快推出。

i also tried to append limit() to the end of the aggregate function, it won't work either. any work around?

聚合框架有一个 $limit 运算符:http://docs.mongodb.org/manual/reference/operator/aggregation/limit/

关于mongodb - mongo 聚合结果超出最大文档大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22816083/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com