小程序云数据库突破每次20条限制
假如我们的要返回的消息条数是57条,如果20条20条的获取,那是不是要获取三次。所以我考虑的就是判断获取的条数如果是20条,那就再继续获取。
onQuery: function () {
const db = wx.cloud.database()
const _ = db.command
var allList = []
db.collection('accountList').where(_.and([{
_openid: app.globalData.openid
},
{
createTime: {
$regex: '.*' + this.data.selectedDate.slice(0, 4) + '.' + this.data.selectedDate.slice(5, 7),
$options: 'i'
}
}
])).skip(this.data.allList.length).get({
success: res => {
allList = this.data.allList;
for (var i = 0; i < res.data.length; i++) {
allList.push(res.data[i])
}
if (allList.length == 20) {
this.searchAgain()
} else {
this.softList()
}
},
fail: err => {
wx.showToast({
title: '查询记账失败'
})
console.error('查询记账失败:', err)
}
})
},
searchAgain: function () {
this.onQuery()
},
我们获取20条后,先放在this.data.allList那里存储。每次使用这个函数,先用函数里面的allList把this.data里面的allLIst获取,再通过push把获取的res.data放进函数的allList里,然后通过this.setdata.allList=allList,获取最新的数组。