hayes123
hayes123
  • 发布:2023-08-05 19:37
  • 更新:2023-08-05 21:11
  • 阅读:201

请教云函数如何将一张表的所有数据请求遍历出来

分类:uniCloud

我发现云函数请求云数据库的数据最多只能返回260多条,我希望能一次性把表中的数据全部遍历出来,不晓得有没有合适的且性能优的方式。

2023-08-05 19:37 负责人:DCloud_uniCloud_WYQ 分享
已邀请:
hayes123

hayes123 (作者)

我本地运行总是卡在请求3次数据表后就停止了,很是离谱,不晓得为什么

喜欢技术的前端

喜欢技术的前端 - QQ---445849201

可以参考,做个分页查询

'use strict';  
const db = uniCloud.database()  
exports.main = async (event, context) => {  
    const collection = db.collection('your_collection')  
    // 设置每页显示的数据条数  
    const pageSize = 100  
    let currentPage = 1  
    let hasMoreData = true  
    let allData = []  
    while (hasMoreData) {  
        const startIndex = (currentPage - 1) * pageSize  
        const endIndex = startIndex + pageSize  
        const res = await collection.skip((currentPage - 1) * pageSize).limit(pageSize).get();  
        allData.push(...res.data)  
        if (res.data.length < pageSize) { // 如果当前页已经没有数据了,说明已经查询完了所有数据  
            hasMoreData = false  
        } else { // 否则继续查询下一页数据  
            currentPage++  
        }  
    }  
    return allData  
};
  • hayes123 (作者)

    谢谢老哥,老哥你能帮我看看下面我的云函数为什么只执行了3次遍卡住了吗

    2023-08-05 20:17

  • hayes123 (作者)

    我用了您这段代码也是,好像云函数的本地运行,输出不了那么多的数据直接就我的数组清空或是卡主了好奇怪

    2023-08-05 20:21

hayes123

hayes123 (作者)

hayes123

hayes123 (作者)

'use strict';
const dayjs = require('dayjs')
exports.main = async (event, context) => {
const db = uniCloud.database();
const dbCmd = db.command

const collection = db.collection('sef-user-info')  
// 设置每页显示的数据条数    
const pageSize = 100  
let currentPage = 1  
let hasMoreData = true  
let allData = []  
while (hasMoreData) {  
    const startIndex = (currentPage - 1) * pageSize  
    const endIndex = startIndex + pageSize  
    const res = await collection.skip((currentPage - 1) * pageSize).limit(pageSize).get();  
    allData.push(...res.data)  
    if (res.data.length < pageSize) { // 如果当前页已经没有数据了,说明已经查询完了所有数据    
        hasMoreData = false  
    } else { // 否则继续查询下一页数据    
        currentPage++  
    }  
}  
return allData  

};

喜欢技术的前端

喜欢技术的前端 - QQ---445849201

我这边只有22条数据,可以全部跑完,你之前的代码只能执行了3次遍卡住了,你看一下是不是数据有问题,有没有createTime字段

要回复问题请先登录注册