收藏
回答

云函数 查询数据库 第二次查询没有结果,请问怎么办?

问题描述:

在同一个云函数中两次查询不同的数据库,然后比较两次查询结果,进行后续操作。但是第二次查询的结果总是为0,而单独查询则不会出现此问题。

代码如下

// 云函数入口文件
// 获取每一个id对应的点击限制:
const cloud = require('wx-server-sdk')
 
cloud.init()
 
// 云函数入口函数
exports.main = async (event, context) => {
  let {
    id,
    stuId,
    userInfo
  } = event;
 
  console.log("id: ", id);
  id = parseInt(id);
 
  let result = null;
  let id_max = 0;
  try {
    result = await cloud.database().collection('maxValueSet').where({
      data: {
        id: id
      }
    }).get().then(res => {
      console.log("res.data: ", res.data[0].data.max_value);  //可以得到结果
      id_max = res.data[0].data.max_value;
    });
  } catch (e) {
    return {
      code: 1,
      msg: e.message
    };
  };
 
  console.log("id_max: ", id_max);
 
  timeStamp_today = new Date().setHours(0, 0, 0, 0);
  timeStamp_today = parseInt(timeStamp_today);
  console.log("today is: ", timeStamp_today);
  let id_today = 0;
  try {
    result = await cloud.database().collection(stuId).where({
      id: id,
      timestamp: cloud.database().command.gte(timeStamp_today)
    }).count().then(res => {
      console.log("res.data: ", res);//得到的结果总是为0---不知道为什么
      id_today = res.total;
    });
  } catch (e) {
    return {
      code: 1,
      msg: e.message
    }
  }
  console.log("id_today: ", id_today);
  if(id_max > id_today){
    return {
      code: 0,
      data: "id_max > id_today"
    }
  }else{
    return {
      code: 3,
      data: "id_max <= id_today"
    }
  }
   
}

代码定位:


不胜感激!!

回答关注问题邀请回答
收藏

1 个回答

  • 思男
    思男
    2019-10-15

    单独用没问题的话,可以分开写然后调用试试看?

    2019-10-15
    赞同 2
    回复 1
    • wql_tailor
      wql_tailor
      2019-10-16
      嗯嗯!后来就分开写了,没问题了。非常感谢!!!
      2019-10-16
      回复
登录 后发表内容
问题标签