【发布时间】:2014-09-27 08:00:10
【问题描述】:
我有一个大约 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 }
]
);
任何想法我做错了什么?
【问题讨论】:
-
你遇到了什么问题,你的MongoDB是什么版本的?
-
我正在运行 2.6.4。我得到的错误是 Exceeded memory limit for $group,
标签: mongodb