我有以下 mongo 版本
db version v2.4.1
MongoDB shell version: 2.4.1,
和
db version v2.2.1-rc1, pdfile version 4.5,
MongoDB shell version: 2.2.1-rc1
安装在64-bit windows 7
机器上。
我有一个包含10001000
(1000 万+)条记录的集合,当我使用 V 2.4.1 进行聚合时,它失败并出现以下错误:
Fatal error in CALL_AND_RETRY_2
Allocation failed - process out of memory
但是,当我使用 V 2.2.1-rc1 来聚合相同的集合时,它可以正常工作并在大约 1 分钟内给出结果。
正在聚合的集合的示例文档:
{
"_id" : ObjectId("516bdd1c39b10c722792e007"),
"f1" : 10000010,
"f2" : 10000000,
"key" : 0
}
聚合命令:
{$group: {"_id": "$key", total: {$sum: "$f1"}}}
用于填充记录的命令:
for(var i = 10011000; i < 10041000; ++i)
{
db.testp.insert({"f1": i+10, "f2": i, "key": i%1000})
}