收藏
回答

在云函数中查询数据的时候能不能根据小程序端传过来的值进行查询?

const type=event.type;
return await db.collection("ns_users").where({
  staname:_.in(['学员']),
  checkinfo:true
}).orderBy("posttime","desc").limit(10).skip(page).get()


在云函数中,type是我从小程序端传递进来的,我想要根据这个type 获取不同的结果,如果type是空的话就还是查询这些,如果type有值那就查询另一个字段,我不想这样写,看看还有别的办法吗?

const type=event.type;
if(type){
  return await db.collection("ns_users").where({
    staname:_.in(['学员']),
    checkinfo:true,
      type:type
 }).orderBy("posttime","desc").limit(10).skip(page).get()  
}else{
  return await db.collection("ns_users").where({
  staname:_.in(['学员']),
  checkinfo:true
 }).orderBy("posttime","desc").limit(10).skip(page).get()
}


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

4 个回答

  • z.song
    z.song
    2020-07-09
    const type=event.type
    let whereQuery = {
      'type1': { /* 查询字段1... */ },
      'type2': { /* 查询字段2... */ },
      'type3': { /* 查询字段3... */ }
    }[type] || { /* type为空或者false的默认字段 */ }
    
    return await db.collection("ns_users").where( whereQuery )...
    
    2020-07-09
    有用 2
    回复 1
    • 王进
      王进
      2020-07-09
      666
      2020-07-09
      回复
  • 台州满天星
    台州满天星
    2020-07-09

    让type不起作用好了。或是where里的对象在外面先处理好

    2020-07-09
    有用 1
    回复
  • Mr.Zhao
    Mr.Zhao
    2020-07-09

    where的参数是不是Object? type不为空,给object增加一个属性,不就能省去不少代码了吗

    2020-07-09
    有用 1
    回复 1
    • 王进
      王进
      2020-07-09
      明白了 谢谢
      2020-07-09
      回复
  • notfound
    notfound
    2020-07-09

    如果你的type必定有值得话,可以写成这样:

    const type = event.type;
    return await db.collection("ns_users").where({
        staname: _.in(['学员']),
        checkinfo: true,
          type: type ? type : _.neq('') //这里******************
     }).orderBy("posttime","desc").limit(10).skip(page).get()
    
    


    2020-07-09
    有用 1
    回复 1
    • 王进
      王进
      2020-07-09
      谢谢
      2020-07-09
      回复
登录 后发表内容
问题标签