MongoDB聚合中$limit传0报错,如何获取全部文档?
在MongoDB聚合中获取全部文档的正确方式
MongoDB的$limit聚合操作符要求传入正整数,所以传0会触发provide positive value的报错。要获取全部文档,有两种实用方式:
直接移除
$limit阶段:聚合管道默认会返回所有经过前面阶段处理后的文档,如果你没有过滤、分组等前置操作,直接执行空管道就能拿到集合里的全部文档。示例:// 获取全部文档 db.collection.aggregate([]) // 带前置过滤阶段的情况,同样不需要$limit db.collection.aggregate([ {$match: {category: "electronics"}} ])若因业务逻辑必须保留
$limit阶段(比如动态生成管道的场景),可以传入一个远大于集合总文档数的正整数。只要这个数值比实际文档数大,就能返回全部文档。示例:db.collection.aggregate([ {$limit: 999999999} ])注意:如果后续集合文档数超过这个数值,结果会被截断,所以这种方式不如直接移除
$limit稳妥,仅适用于必须保留该阶段的特殊场景。
内容的提问来源于stack exchange,提问作者Avinash Sharma
相关产品推荐
相关产品推荐

