如何突破一次只能获取20条记录的limit限制?只需要一行代码。
发布于 4 年前 作者 wanguiying 338 次浏览 来自 分享

笔者刚遇到需要一次性拉取超过100条(云函数里超过1000条)记录的这种需求。

一般情况下,会有下面两种处理方式:

1、先获取总数,再for循环,每次拉取limit条记录;

2、递归拉取,每次拉取limit条记录,直到拉取的记录数量小于limit。

以上两种方式都比较麻烦,于是动了一脑筋,以最简单的方式实现上面的需求。

极简代码如下:

    db.collection('order').aggregate()
    .match({
      status:'已付费'
    })
    .addFields({
      tempTag:1 //增加一个临时标签
    })
    .group({
      _id:'$tempTag',
      orders:$.push('$$ROOT') //一次性拉取超过100条或者1000条记录
    })
    .end()
    .then(res=>{
      let orders = res.list[0].orders
      console.log(orders)
    })

一个临时标签,搞定。

回到顶部