如何突破一次只能获取20条记录的limit限制?只需要一行代码。
笔者刚遇到需要一次性拉取超过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)
})
一个临时标签,搞定。