在小程序云函数中,可以使用group
和skip
来组合实现分组查询并跳过指定数量的结果。下面是一个示例:
// index.js 中的云函数
const cloud = require('wx-server-sdk')
cloud.init()
const db = cloud.database()
const MAX_LIMIT = 100
exports.main = async (event, context) => {
const wxContext = cloud.getWXContext()
// 获取前端传来的参数
const { groupCount, skipCount } = event
// 获取指定数量的数据分组,每组数量为 groupCount
const result = await db.collection('myCollection')
.skip(skipCount) // 跳过指定数量的结果
.limit(groupCount * MAX_LIMIT) // 限制每次查询的结果数量
.get()
// 对结果进行分组
const data = result.data
const groups = []
for (let i = 0; i < data.length; i += groupCount) {
groups.push(data.slice(i, i + groupCount))
}
return {
groups,
openid: wxContext.OPENID,
appid: wxContext.APPID,
unionid: wxContext.UNIONID,
}
}
在小程序端调用该云函数时,可以传递groupCount
和skipCount
参数来指定每组的数量和要跳过的数量。示例如下:
wx.cloud.callFunction({
name: 'index',
data: {
groupCount: 5, // 每组数量为 5
skipCount: 10 // 跳过前 10 条结果
},
success: res => {
console.log(res.result.groups) // 分组后的结果
},
fail: err => {
console.error(err)
}
})
这样,云函数会按照指定的每组数量进行分组,并跳过指定数量的结果。分组后的结果可以在小程序端进行处理和展示。