欧美三级国产三级日韩三级_亚洲熟妇丰满大屁股熟妇_欧美亚洲成人一区二区三区_国产精品久久久久久模特

微信小程序云開發(fā)---如何通過云函數(shù)每次最多返回100條的限制 ... - 新聞資訊 - 云南小程序開發(fā)|云南軟件開發(fā)|云南網(wǎng)站建設(shè)-昆明葵宇信息科技有限公司

159-8711-8523

云南網(wǎng)建設(shè)/小程序開發(fā)/軟件開發(fā)

知識

不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價值,我們在追求其視覺表現(xiàn)的同時,更側(cè)重于功能的便捷,營銷的便利,運(yùn)營的高效,讓網(wǎng)站成為營銷工具,讓軟件能切實(shí)提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序?yàn)楹笃谏壧峁┍憬莸闹С郑?

您當(dāng)前位置>首頁 » 新聞資訊 » 小程序相關(guān) >

微信小程序云開發(fā)---如何通過云函數(shù)每次最多返回100條的限制 ...

發(fā)表時間:2022-7-26

發(fā)布人:葵宇科技

瀏覽次數(shù):117

看過石頭哥云開發(fā)基礎(chǔ)課的同學(xué)肯定都知道,直接在小程序里請求數(shù)據(jù)每次最多只能返回20條數(shù)據(jù),云函數(shù)里請求數(shù)據(jù)每次最多只能返回100條數(shù)據(jù),如果想突破這個限制,最好的方式就是做分頁,當(dāng)然分頁我在云開發(fā)基礎(chǔ)里也有教大家。但是限制存在這么一個需求,如果我們想一次性的拿到數(shù)據(jù)庫里存的所有數(shù)據(jù)呢,比如數(shù)據(jù)庫里有1000條數(shù)據(jù),我們想一下子全部拿到,該怎么做呢???

今天就來教大家如何通過云函數(shù)每次最多返回100條的限制。

一,云函數(shù)突破100條的限制

如上圖所示,我的num集合里有103條數(shù)據(jù),如果按照之前的分頁思路,就是分兩次請求,第一次請求1-100條,第二次請求101-103條。這樣我們雖然是可以拿到103條數(shù)據(jù),但是要做兩次請求,我們該如何做,才能一次請求就可以獲取這103條數(shù)據(jù)呢。

1-1,突破100條的原理

其實(shí)原理和我們分頁的原理是一樣的,只不過我們用for循環(huán)做多次請求,然后把這多次的請求組合到一起,然后把組合好的數(shù)據(jù)一次性全部返回。這樣就通過一次請求獲取所有數(shù)據(jù)。

1-2,代碼實(shí)現(xiàn)

這里的代碼是寫在云函數(shù)里,操作步驟我都在注釋里給大家寫出來。


如上圖所示,我們只需要通過三個步驟,就可以拿到所有的103條數(shù)據(jù)了。


這樣我們就可以通過一次請求,獲取所有的數(shù)據(jù)了。是不是感覺很簡單。這里把代碼貼出來給到大家。
// 云函數(shù)入口文件
const cloud = require('wx-server-sdk')
// 云開發(fā)環(huán)境初始化
cloud.init({env: cloud.DYNAMIC_CURRENT_ENV})
exports.main = async (event, context) => {
  const db = cloud.database()
  // 1,獲取數(shù)據(jù)的總個數(shù)
  let count = await db.collection('num').count()
  count = count.total
  // 2,通過for循環(huán)做多次請求,并把多次請求的數(shù)據(jù)放到一個數(shù)組里
  let all = []
  for (let i = 0; i < count; i += 100) { //自己設(shè)置每次獲取數(shù)據(jù)的量
    let list = await db.collection('num').skip(i).get()
    all = all.concat(list.data);
  }
  // 3,把組裝好的數(shù)據(jù)一次性全部返回
  return all;
}

1-3,注意事項(xiàng)

云函數(shù)單次返回的數(shù)據(jù)不能超過1M,如果需要超過1M,則需要使用小程序端的數(shù)據(jù)查詢20條20條的進(jìn)行組合了。所以如果你一次性要返回很多數(shù)據(jù),可以考慮在小程序里直接請求數(shù)據(jù)庫,然后做20條20條的組裝。
我下面也會教大家在小程序里做組裝。

二,小程序直接請求數(shù)據(jù)庫突破20條

2-1,開啟async和await

原理我們這里不在說了,和上面是一模一樣的,只不過小程序里使用await需要做下簡單的操作,也可以去看下我的另外一篇文章。
《小程序里使用async和await變異步為同步,解決回調(diào)地獄問題》


現(xiàn)在最新版本的小程序開發(fā)者工具好像已經(jīng)支持async和await方法了,好像不勾選增強(qiáng)編譯也沒事。但是安全起見,還是勾選下增強(qiáng)編譯比較好。

2-2,權(quán)限修改

小程序里直接獲取數(shù)據(jù)庫里的數(shù)據(jù),記得要把集合的權(quán)限改一下

2-3,代碼實(shí)現(xiàn)


細(xì)心的同學(xué)肯定可以看出來,上面的代碼和我們云函數(shù)里的代碼基本上一模一樣的。


到這里我們就完美的突破了小程序的限制,返回我們想要的任何個數(shù)的數(shù)據(jù)了。

相關(guān)案例查看更多