当返回的文档在聚合中超过16MB限制时,我应该使用允许磁盘使用选项吗?
或者我应该改变数据库结构或代码逻辑以避免限制?“allowDiskUse”的优点和缺点是什么?谢谢你的帮助。
她的是我看过的官方文件:结果尺寸限制
在版本2.6中更改。
从MongoDB2.6开始,集合命令可以返回游标或将结果存储在集合中。当返回游标或将结果存储在集合中时,结果集中的每个文档都受到BSON文档大小限制的限制,目前为16兆字节;如果任何单个文档超过BSON文档大小限制,该命令将产生错误。该限制仅适用于返回的文档;在流水线处理过程中,文档可能会超过此大小。
内存限制
在版本2.6中更改。
管道级的RAM限制为100 MB。如果阶段超过此限制,MongoDB将产生错误。要允许处理大型数据集,请使用allowDiskUse选项启用聚合管道阶段以将数据写入临时文件。https://docs.mongodb.com/manual/core/aggregation-pipeline-limits/
allowDiskUse
与16MB结果大小限制无关。该设置控制管道步骤(如$sort或$group)在需要超过100MB内存时是否可以使用一些临时磁盘空间。理论上,对于任意管道,这可能是非常大的磁盘空间。就个人而言,这从来不是一个问题,但这将取决于您的数据。
如果您的结果将超过16MB,那么您需要使用$out管道阶段将数据输出到集合,或者使用管道应用编程接口将光标返回到结果,而不是内联返回所有数据(对于某些驱动程序,这是一个单独的方法,对其他人来说是传递给同一方法的标志)。
问题内容: 在我目前的公司中,我们正在考虑使用jPOS与其他系统进行ISO 8583集成。我阅读免费文档已有一段时间了,但是仍然有很多空白。例如: jPOS应该如何在产品中工作?我是否应该启动Q2服务器,它会像端点接收或发送ISO8583消息那样工作?我应该如何将其与我的应用服务器集成? 在哪些情况下以及如何使用jPOS空间? 我的基本用例是发送/接收ISO消息。我需要所有这些东西吗? 是否还有其
当使用docker和ASP.NET核心进行开发时,我应该使用用户秘密还是环境变量?我使用的是Visual Studio2017在添加项目时创建的默认docker文件,该文件使用Microsoft/ASPNetCore:1.1,我相信是一个linux映像。 我如何在docker中设置User-secrets/Environment变量,使其在启动时设置,但不包含在源代码中?
我已经用docker和docker compose设置了一些环境,因此我有不同的容器和不同的服务,所有这些容器都是由docker-compose编排的,它在我的本地开发环境中运行良好。最近我读了一些关于kubernetes和minikube的文章,但实际上,kubernetes是一个更多用于容器管理的服务器/集群的工具。 问题是,对于本地开发环境(例如php、mysql和apache),我应该使用
Kibana 的配置很大程度上依赖于您的使用场景。如果只有自己使用,可以在自己的机器上运行 Kibana,配置它指向任何您想要交互的 Elasticsearch 实例。相反,如果有大量的 Kibana 使用者,需要多个 Kibana 实例连接至同一个 Elasticsearch 节点,来保证负载均衡。 尽管 Kibana 不是非常耗费资源,我们仍然建议运行 Kibana 的节点和 Elastics
问题内容: 有一个有趣的选择: 通过内联静态,最终和私有方法来优化编译代码。请注意,您的班级可能会变大。 该选项似乎并不流行(隐藏?),我今天才在CodeCup 2014页面 上发现了它。 在官方文档中也没有提及。 在接受类似问题的答案中,我们可以看到: Java中的优化主要由JIT编译器在运行时完成。因此,没有必要试图指示它在编译时优化某种方式(无论如何它仅创建字节码)。JIT几乎肯定会在现场做
有一个有趣的选项: 通过内联静态、最终和私有方法优化编译代码。请注意,您的类可能会变得更大。 这个选项似乎不流行(隐藏?),我今天刚刚在CodeGlass 2014页面上发现了它。 在官方文档中没有提到,也没有在...奇怪。 在类似问题的公认答案中,我们可以看到: Java 中的优化主要由 JIT 编译器在运行时完成。因此,尝试指示它在编译时以某种方式进行优化是没有意义的(无论如何,当它只创建字节
我在设置Tomcat和Java环境路径时遇到了这个错误: JAVA\u HOME和JRE\u HOME环境变量均未定义。运行该程序至少需要两个环境变量中的一个。 在用户变量中:我创建了JAVA\u主变量,并将C:\Program Files\JAVA\jdk1.8.0\u 25添加到其路径中。然后对系统变量路径进行了编辑,添加了C:\Program Files\Java\jdk1.8.0\U 25
问题内容: 我正在使用IdentityServer4和来自ASP.NET Core 3.0的React启动项目。预览4,它可以完美工作,直到构建解决方案并尝试使用dotnet命令从cmd提示符运行它为止。每次我启动应用程序时,它都会告诉我未指定密钥类型。 我没有尝试过各种有关生成证书的指南,因为我对.NET没有任何经验。我提到这一点是为了防止问题可能是由于生成证书的方式不正确引起的。 我也尝试过将