云函数端
1.首先获得欲查询数据的总数
2.然后编写单次查询函数
3.循环查询,然后组合到一起
小程序端
思路与云函数端一样,不同的是小程序端不允许await
,需要用Promise
方法实现
1.获取总数
function getListCount(openid) {
return new Promise((resolve, reject) => {
db.collection('info').where({
"studyUserId": openid
}).count().then(res => {
resolve(res.total);
}).catch(e => {
console.log(e)
reject("查询失败")
})
})
}
2.单次查询函数
function getListIndexSkip(openid, skip) {
return new Promise((resolve, reject) => {
let statusList = []
let selectPromise;
if (skip > 0) {
selectPromise = db.collection('info').where({
"studyUserId": openid
}).skip(skip).get()
} else {
//skip值为0时,会报错
selectPromise = db.collection('info').where({
"studyUserId": openid
}).get()
}
selectPromise.then(res => {
resolve(res.data);
}).catch(e => {
console.error(e)
reject("查询失败!")
})
})
}
3.循环查询,整合数据
getListCount(openid).then(res => {
let count = res
let list = []
for (let i = 0; i < count ; i += 20) {
getListIndexSkip(openid, i).then(res => {
list = list.concat(res);
if (list.length == count ) {
resolve(list)
}
})
.catch(e => {
console.error(e)
reject("查询失败")
})
}
})
})
————————————————
版权声明:本文为CSDN博主「黑鸦log」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/c0411034/article/details/100533151