收藏
回答

云数据库 db.collection(集合).where({}).get, 集合不能用变量吗?

问题一。代码如下,adcode 换成集合名称就可以用,使用前端传过来的adcode变量就不行

问题二。这样取数据貌似效率比较低,如何能提高获取数据的效率,根据集合的多个id 请求多条数据,请求大神解答一下

exports.main = async (event, context) => {

  let adcode=event.adcode

  for(var j=0, len=event.cartlist.length; j < len;j++){

          try{

    await  db.collection(adcode).where({

      _id:event.cartlist[j].goods_id

   

    }).get().then(res=>{

      cartlistdetail.push(res.data[0])


    }).catch(err=>{})




  

  }catch(err){


    console.log(err)

  }

  }


  return  cartlistdetail

}


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

3 个回答

  • o0o有脾气的酸奶
    o0o有脾气的酸奶
    2020-07-13
    exports.main = async (event, context) => {
      let adcode = event.adcode, ids = []
       if(!event.adcode || event.adcode.trim() == '') return { errMsg: '集合名未传'}
      for(var j=0, len=event.cartlist.length; j < len;j++){
        ids.push(event.cartlist[j].goods_id)
      }
       return ids.length ? db.collection(adcode).where({_id: _.in(ids)}).get() : []
    }
    

    若认为该回答有用,给回答者点个[ 有用 ],让答案帮助更多的人

    2020-07-13
    有用
    回复 2
  • 云托管产品经理-Zira
    云托管产品经理-Zira
    2020-07-12

    使用前端传过来的adcode变量就不行,这里怎么不行,可以给一个报错嘛

    2020-07-12
    有用
    回复 1
    • 张三疯
      张三疯
      2020-07-13
      我这个确实是前端传过来的adcode,所以说原因在这吗
      2020-07-13
      回复
  • 老张
    老张
    2020-07-12

    你这些代码都是可以放在小程序端运行的,没必要用云函数。

    2020-07-12
    有用
    回复
登录 后发表内容
问题标签