在云函数中,获取数据库的数据一次只能获取100条,如果需要突破限制的话,可以这样做
// 云函数入口文件
const cloud = require('wx-server-sdk')
cloud.init()
//初始化云数据库
const db = cloud.database()
const rp = require('request-promise');
//获取playlist这个歌单
const playlistCollection = db.collection('playlist')
const MAX_LIMIT = 100 //每次取100条
// 云函数入口函数
exports.main = async(event, context) => {
//突破获取小程序云数据库100条的限制
const contResult = await playlistCollection.count() //获取总的条数,返回的是对象
const total = contResult.total //返回数据的条数
//计算一共要取多少次
const batchTimes = Math.ceil(total / MAX_LIMIT)
const tasks = []
for (let i = 0; i < batchTimes; i++) {
//skip:当前从第几条开始取,limit:取的条数
let promise = playlistCollection.skip(i * MAX_LIMIT).limit(MAX_LIMIT).get()
tasks.push(promise)
}
//list 歌单的数据
let list = {
data: []
}
if (tasks.length > 0) {
//await Promise.all(tasks) 等待当前所有任务完成以后,acc:之前的值,cur:当前遍历的值
list = (await Promise.all(tasks)).reduce((acc, cur) => {
return {
data: acc.data.concat(cur.data)
}
})
}
}
获得的list就是整个要搜索的数据库里面的数据。