小程序 云开发 云函数怎么对大量数据做计算

发布于 2022-09-11 20:34:02 字数 991 浏览 10 评论 0

题目描述

我开发小程序用的云开发,在云函数里面查询云数据库的数据,想要在云函数里面对集合数据计算;
我对安卓和服务端开发都熟悉,但是对js不是很熟悉,希望大佬给点提示、建议、思路

题目来源及自己的思路

我尝试在下面代码的 for 循环和reduce 中做计算,但是都不行,

相关代码

// 小程序文档在云函数里面获取云数据库数据集合的代码

const cloud = require('wx-server-sdk')
cloud.init()
const db = cloud.database()
const MAX_LIMIT = 100
exports.main = async (event, context) => {
  // 先取出集合记录总数
  const countResult = await db.collection('todos').count()
  const total = countResult.total
  // 计算需分几次取
  const batchTimes = Math.ceil(total / 100)
  // 承载所有读操作的 promise 的数组
  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)
  }
  // 等待所有
  return (await Promise.all(tasks)).reduce((acc, cur) => {
    return {
      data: acc.data.concat(cur.data),
      errMsg: acc.errMsg,
    }
  })
}
但是我有个需求,是在云函数里面调用云数据库的数据集合,并对这20条数据其中的一个字段求和并返回,不知道该怎么做了

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文