清除token


// 云函数入口文件
const cloud = require('wx-server-sdk')

// 初始化云环境
cloud.init()

// 获取数据库实例
const db = cloud.database()

// 每次批量更新的记录数
const BATCH_SIZE = 100

exports.main = async (event, context) => {
  try {
    console.log('开始获取token字段大于0的用户记录数')

    // 计算token字段大于0的记录数
    const countResult = await db.collection('users')
      .where({
        token: db.command.gt(0) // 筛选token大于0的用户
      })
      .count()

    const total = countResult.total
    console.log(`符合条件的总记录数获取成功: ${total}`)

    // 计算需要处理的批次数
    const batchTimes = Math.ceil(total / BATCH_SIZE)
    console.log(`计算批次数成功: 需要处理的批次数为 ${batchTimes}`)

    let totalUpdated = 0

    for (let i = 0; i < batchTimes; i++) {
      console.log(`开始处理第 ${i + 1} 批记录`)

      try {
        // 获取符合条件的记录
        const users = await db.collection('users')
          .where({
            token: db.command.gt(0) // 筛选token大于0的用户
          })
          .skip(i * BATCH_SIZE)
          .limit(BATCH_SIZE)
          .get()

        console.log(`第 ${i + 1} 批获取成功,共 ${users.data.length} 条记录`)

        const tasks = users.data.map(async user => {
          try {
            console.log(`开始更新用户ID: ${user._id} 的 token 字段`)
            await db.collection('users').doc(user._id).update({
              data: {
                token: 0
              }
            })
            console.log(`用户ID: ${user._id} 的 token 字段更新成功`)
          } catch (userUpdateError) {
            console.error(`更新用户ID: ${user._id} 时出错: ${userUpdateError}`)
          }
        })

        // 批量执行更新操作
        await Promise.all(tasks)
        totalUpdated += users.data.length

        console.log(`第 ${i + 1} 批处理完成,已更新 ${users.data.length} 条记录`)

      } catch (batchError) {
        console.error(`处理第 ${i + 1} 批记录时出错: ${batchError}`)
      }
    }

    console.log(`全部批次处理完成,总共更新了 ${totalUpdated} 条记录`)

    return {
      success: true,
      totalUpdated: totalUpdated
    }

  } catch (err) {
    console.error(`发生错误: ${err}`)
    return {
      success: false,
      errorMessage: err
    }
  }
}
0

【清除token隶属于分类: 大猫概念 JavaScript

它起初由本站用户:刘欣Eden于2周前 创建。

该内容的链接是:

目录