当前位置: 首页 > 知识库问答 >
问题:

无法获得 allowDiskUse:True 与 pymongo 一起工作

许俊晤
2023-03-14

我在使用pymongo进行mongodb聚合时遇到了< code >聚合结果超过最大文档大小(16MB)错误。

起初,我使用< code>limit()选项克服了这个问题。然而,在某个时候,我得到了

Exceeded memory limit for $group, but didn't allow external sort. Pass allowDiskUse:true to opt in." error.

好的,我将使用 {'allowDiskUse':True} 选项。当我在命令行上使用它时,此选项有效,但是当我尝试在我的 python 代码中使用时,此选项有效

result = work1.aggregate(pipe, 'allowDiskUse:true')

我得到< code>TypeError: aggregate()正好接受2个参数(给定3个)错误。(尽管http://API . MongoDB . org/python/current/API/py mongo/collection . html # py mongo . collection . collection . aggregate:aggregate(pipeline,**kwargs)给出了定义)。

我尝试使用 runCommand,或者更确切地说,它是 pymongo 等价物:

db.command('aggregate','work1',pipe, {'allowDiskUse':True})

但现在我又回到了“聚合结果超过最大文档大小(16MB)”错误

如果你想知道的话

pipe = [{'$project': {'_id': 0, 'summary.trigrams': 1}}, {'$unwind': '$summary'}, {'$unwind': '$summary.trigrams'}, {'$group': {'count': {'$sum': 1}, '_id': '$summary.trigrams'}}, {'$sort': {'count': -1}}, {'$limit': 10000}]

谢谢你

共有1个答案

汲睿
2023-03-14

因此,按顺序:

>

  • 聚合是一种方法。它接受2个位置参数(隐式传递的<code>self</code>和<code>pipeline</code>)和任意数量的关键字参数(必须以<code>foo=bar</code>的形式传递--如果没有<code>=</code>符号,它就不是关键字参数)。这意味着您需要调用result=work1.aggregate(管道,allowDiskUse=True)

    关于最大文档大小的错误是Mongo固有的。Mongo永远不会返回大于16兆字节的文档(或其数组)。我不能告诉你为什么,因为你既没有给我们你的数据,也没有给我们你的代码,但这可能意味着你最终构建的文档太大了。尝试减少< code>$limit参数,也许?首先将它设置为1,运行一个测试,然后增加它,看看当你这样做时结果会变得多大。

  •  类似资料:
    • 问题内容: 我想知道为什么没有确定的合作方式。我只想解析字符串: 但是我真的很困惑应该导入什么。根据此链接,我尝试导入。但是我得到这个编译错误: 然后我尝试导入和。因此,没有编译错误,但是我得到了此运行时异常(在mapper定义行中): 请指导我,我应该导入什么才能使用。谢谢 问题答案: 使用这些依赖项 jackson-databind jackson-annotations jackson- c

    • 我对scrollview和GeometryReader有一些问题。我想要一张图片下的物品清单。每个项目都应该有以下宽度和高度: 我为我的用例尝试了两种方法。这是我的第一个代码结构: 我正在使用几何体读取器来获取VStack的宽度,因为它有一个填充,我不想获得滚动视图的全宽。 但对于GeometryReader,UI上只显示ForEach循环中的最后一项。而GeometryReader只有很小的高度

    • 问题内容: 在我编写的flask应用程序中,我使用了一个外部库,该库可以使用环境变量进行配置。注意:我自己编写了这个外部库。因此,如有必要,我可以进行更改。从命令行运行时,运行带有以下内容的烧瓶服务器: 一切都如预期。但将它部署到Apache后,用它不工作了。事实上,打印出到(所以它在Apache日志中显示出来显示,该wsgi过程似乎是在一个非常不同的环境(一个,好像是这样了。其实,它指向我的发展

    • 以下结构(在中)不允许我在模块中导入类: 顶层的为空。以下是剩余的文件: a b: 在Windows上,如果我尝试运行(从文件夹中)而不做任何其他操作,我会得到以下错误: 如果我在顶层添加一个: 包含 并运行(从内),我得到同样的错误。 如果我将更改为 然后运行(从文件夹中)或(从)中,我得到了 python文档让我觉得我应该能够做到这一点! 有人能解释一下我为什么会犯这些错误吗?我看到过几篇类似

    • 我正在编写一个Web项目,它使用了Apache Tomcat 5.0和JDK 1.4.2之上的Spring框架2.5。 当Tomcat启动时,它从未加载Spring。 Web.xml如下: "web-Application ationContext.xml"就像: 控制台提供了以下日志堆栈跟踪: 严重:配置类org的应用程序侦听器时出错。springframework。网状物上下文ContextL