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

时间:2016-02-24 11:33:51

标签: mongodb mongoose aggregation-framework

当使用带有Aggregate的MongoDB' $ in子句时,参数数量是否有任何最大限​​制?

例如

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

在ids数组中,我可以传递多少个ID?

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

我曾尝试搜索Mongo文档,但没有找到任何内容。

提前致谢。

1 个答案:

答案 0 :(得分:2)

$in子句本身的参数数量没有限制,但是,总查询大小限制为16MB,因为查询只是一个BSON文档。根据{{​​1}}使用的类型(参见BSON specification),当您的ID长度达到几百万时,您可能会遇到问题。