MongoDB allowDiskUse不起作用。 [英] MongoDB allowDiskUse not working..

查看:1342
本文介绍了MongoDB allowDiskUse不起作用。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

专家。

我是MongoDB的新手,但了解得足以使自己陷入困境。.案例:

I'm new to MongoDB, but know enough to get my self in trouble.. case in point:

db.test.aggregate(
[
    {$group: {_id: {email: "$email", gender: "$gender"}, cnt: {$sum: 1}}}, 
    {$group: {_id: "$_id.email", cnt: {$sum: 1}}}, 
    {$match: {cnt: 2}}
], 
    {allowDiskUse : true}
)

无论我尝试哪种变化,我都会收到相同的错误(通过allowDiskUse:true启用):

and no matter what variations I try, I keep getting the same error ("Pass allowDiskUse:true to opt in"):


错误(打印堆栈跟踪)@:0()@ src / mongo / shell / utils.js:37
([对象数组],[对象对象])@ src / mongo / shell / collection.js :866
@(shell):7

Error("Printing Stack Trace")@:0 ()@src/mongo/shell/utils.js:37 ([object Array],[object Object])@src/mongo/shell/collection.js:866 @(shell):7

未捕获的异常:聚合失败:{ errmsg:异常:
收到来自以下响应的错误mongo1.mscnet.com:27017:{$ err:
\ $ group的内存限制超出限制,但不允许外部排序。
通过allowDiskUse:true来启用。
\,代码:16945},代码:16945,
确定:0
}

uncaught exception: aggregate failed: { "errmsg" : "exception: Received error in response from mongo1.mscnet.com:27017: { $err: \"Exceeded memory limit for $group, but didn't allow external sort. Pass allowDiskUse:true to opt in.\", code: 16945 }", "code" : 16945, "ok" : 0 }

仅供参考:我使用的是Mongo 2.6

FYI: I'm using Mongo 2.6

推荐答案

请在运行命令中使用聚合查询,它将允许使用allowDiskUse标签。

Please use aggregate query in run command,it will allow to use allowDiskUse tag.

db.runCommand(
   { aggregate: "test",
     pipeline: [
                {$group: {_id: {email: "$email", gender: "$gender"}, cnt: {$sum: 1}}}, 
                {$group: {_id: "$_id.email", cnt: {$sum: 1}}}, 
                {$match: {cnt: 2}}
               ],
     allowDiskUse: true
   }
)

这篇关于MongoDB allowDiskUse不起作用。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆