gpt4 book ai didi

mongodb - 如何在 mongoDB 中聚合巨大的数组?

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

我有一个大约 400gb 的 mongodb。文档包含各种字段,但这里的关键是一个 ID 数组。

所以一个 json 文件可能看起来像这样

{
"name":"bob"
"dob":"1/1/2011"
"key":
[
"1020123123",
"1234123222",
"5021297723"
]
}

这里的焦点变量是“key”。 5000 万个文档中总共有大约 100 亿个键(因此每个文档有大约 200 个键)。键可以重复,大约有 1500 万个 UNIQUE 键。

我想做的是返回 10,000 个最常用的键。我认为聚合可能会这样做,但我在让它运行时遇到了很多麻烦。这是我的代码:

db.users.aggregate( 
[
{ $unwind : "$key" },
{ $group : { _id : "$key", number : { $sum : 1 } } },
{ $sort : { number : -1 } },
{ $limit : 10000 }
]
);

任何想法我做错了什么?

最佳答案

试试这个:

db.users.aggregate( 
[
{ $unwind : "$key" },
{ $group : { _id : "$key", number : { $sum : 1 } } },
{ $sort : { number : -1 } },
{ $limit : 10000 },
{ $out:"result"},
], {
allowDiskUse:true,
cursor:{}
}
);

然后通过db.result.find()查找结果。

关于mongodb - 如何在 mongoDB 中聚合巨大的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26069601/

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