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

MongoDB的$in子句在参数数量上是否有任何最大限制

昌乐
2023-03-14

当将MongoDB的$in子句与Aggregate一起使用时,That在参数数量上有任何最大限制吗?

例如

Model.aggregate(
        [
            { $match : 
                { '_Id' : 
                            {
                                $in : ids
                            }
                }
            } ,
            { $group : 
                {   _id : '$roomId' ,
                    maxdate: { $max: "$date"},
                }
            },
            {$sort: { maxdate: -1} },
            {$skip: skip},
            {$limit: limitNum }
        ]

在id数组中,我可以传递多少id?

目前,我没有遇到任何问题的ids长度达到50,000...但是为了安全起见,我想知道最大限度。

我试着在Mongo doc上搜索,但是什么也没找到。

先谢谢你。

共有1个答案

严修谨
2023-03-14

< code>$in子句本身的参数数量没有限制,但是,由于查询只是一个BSON文档,因此总的查询大小限制为16MB。根据< code>ids使用的类型(参见BSON规范),当您的ids长度达到几百万时,您可能会遇到问题。

 类似资料:
  • 问题内容: 我该如何对包含一个IN带有可变数量的参数的子句的查询进行参数化(例如这样的查询)? 在此查询中,参数的数量可以在1到5之间的任何位置。 我不希望对此(或XML)使用专用的存储过程,但是如果有一些特定于SQL Server 2008的优雅方法,我可以接受。 问题答案: 这是我使用的一种quick-and-dirty的技术: 因此,这是C#代码: 两个警告: 表现很糟糕。LIKE “%…%

  • 我的示例用例是查询没有阻止用户的人的数据,可以阻止用户的人数没有限制 所以我的查询看起来像 所以$nin操作符中的Array项的数量可能会增长到一个潜在的大数字,那么MongoDB中的这个数组的大小有限制吗?

  • 问题内容: 执行查询时如何在JDBC的prepareStatement中设置in子句的值。 例: 如果此条款可 问题答案: 我要做的是添加一个“?” 对于每个可能的值。 例如: 然后愉快地设置参数

  • 问题内容: 我有很多这样的SQL语句: 这样安全地适合IN子句的元素数量是否存在已知限制? 问题答案: 没有技术上的限制,但是有某种“明智”的限制。 IN子句中的元素过多意味着查询的设计可能不正确(imho)

  • 问题内容: 我正在将几个已硬编码到应用程序中的查询转换为动态的参数化查询。我遇到一个特定的查询,该查询有一个子句: 第一个参数很简单,因为它只是一个普通参数: 但是,第二个参数是一个整数列表,表示需要更新的行的ID。如何为单个参数传递整数列表?或者,您将如何设置此查询,以使您不必每次调用时都完全构建它,并且可以防止SQL注入攻击? 问题答案: 您可以基于(可能)可变数量的参数“动态”构建参数化查询

  • 问题内容: 我最近一直在复制和移动大量文件(约40万个)。我知道在Bash命令行上可以扩展的参数数量有限制,因此我一直在使用xargs来限制产生的数量。 出于好奇,我想知道我可以使用的最大参数数目是多少,我发现这篇文章说它是依赖于系统的,我可以运行以下命令来找出: 令我惊讶的是,我回来的答案是: 刚刚超过 260万 。正如我所说,我要处理的文件数量要少得多,大约为40万。我绝对需要使用移动和复制这