使用云数据库加云函数进行数据的请求和存储。
注意:在小程序端默认及最大上限为 20,在云函数端默认及最大上限为 100
解决方案如下:
首先在目录cloudfunctions下右击新建Node.js 云函数,在index.js中粘贴以下代码后,右击新建的文件夹选择上传并部署
// 云函数入口文件
const cloud = require('wx-server-sdk')
// 云开发环境初始化
cloud.init({env: cloud.DYNAMIC_CURRENT_ENV})
exports.main = async (event, context) => {
const db = cloud.database()
// 1,获取符合条件的数据的总个数 Ammeter为我的云数据库名称
let count = await db.collection('Ammeter').where({
//判断条件
_openid:event._id
}).count()
count = count.total
console.log(count);
// 2,通过for循环做多次请求,并把多次请求的数据放到一个数组里
let all = []
//自己设置每次获取数据的量,云函数最大可获取100条
for (let i = 0; i < count; i += 100) {
let list = await db.collection('Ammeter').where({
_openid:event._id
}).skip(i).orderBy('createTime','desc').get() //skip为分页,通过orderBy进行排序
all = all.concat(list.data);
}
// 3,把组装好的数据一次性全部返回
return all;
}
上传并部署后,调用云函数返回获取到的数据
wx.cloud.callFunction({
// name参数填写你刚刚创建的云函数名称,我这里叫做helloworld
name:'helloworld',
data:{
//把需要的判断参数放进去,如果不需要则不填
_id:id
},
}).then(res=>{
console.log(res)
})
这样下来就可以解决查询20条的限制了,大致代码如上,可根据具体的业务进行修改。