W3Cschool
恭喜您成為首批注冊(cè)用戶(hù)
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
解釋?zhuān)翰樵?xún)返回結(jié)果時(shí)從指定序列后的結(jié)果開(kāi)始返回,可用于分頁(yè)。
參數(shù)說(shuō)明
該方法的傳入?yún)?shù)為必填參數(shù),參數(shù)類(lèi)型為數(shù)字類(lèi)型,用來(lái)指定查詢(xún)返回結(jié)果開(kāi)始的序列。
代碼示例 1
swan.cloud.init({
env: 'envId'
});
const db = swan.cloud.database();
db.collection('users')
.skip(10)
.get()
.then(res => {
console.log(res);
})
.catch(err => {
console.warn(err);
});
獲取第二頁(yè)的用戶(hù)信息,假設(shè)一頁(yè) 10 條,現(xiàn)在要取第 2 頁(yè),則可以指定 skip 10 條記錄
代碼示例 2
swan.cloud.init({
env: 'envId'
});
const db = swan.cloud.database();
db.collection('users')
.skip(10) // 跳過(guò)結(jié)果集中的前 10 條,從第 11 條開(kāi)始返回
.limit(10) // 限制返回?cái)?shù)量為 10 條
.get()
.then(res => {
console.log(res);
})
.catch(err => {
console.warn(err);
});
下面是在云函數(shù)端獲取一個(gè)集合所有記錄的例子,因?yàn)橛凶疃嘁淮稳?100 條的限制,因此很可能一個(gè)請(qǐng)求無(wú)法取出所有數(shù)據(jù),需要分批次取:
代碼示例 3
const cloud = require('swan-server-sdk')
cloud.init()
const db = cloud.database()
const MAX_LIMIT = 100
exports.main = async (event, context) => {
// 先取出集合記錄總數(shù)
const countResult = await db.collection('users').count()
const total = countResult.total
// 計(jì)算分幾次取
const batchTimes = Math.ceil(total / 100)
// 所有讀操作的 promise 的數(shù)組
const tasks = []
for (let i = 0; i < batchTimes; i++) {
const promise = db.collection('todos').skip(i * MAX_LIMIT).limit(MAX_LIMIT).get()
tasks.push(promise)
}
// 等待所有數(shù)據(jù)被取出
return (await Promise.all(tasks)).reduce((acc, cur) => {
return {
data: acc.data.concat(cur.data),
errMsg: acc.errMsg,
}
})
}
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話(huà):173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: