收藏
回答

如何将数据库查询条件封装成参数传递给云函数?

云函数端查询语句:

    db.collection(collectionName).where(wherex).get()

这里wherex是前端传过来的参数

当需要用到db.command时应如何处理参数wherex


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

1 个回答

  • 就在那里
    就在那里
    01-21

    不知道你想问啥,db.command和传过来的参数又没有关系

    01-21
    赞同
    回复 7
    • JAVA不吃辣椒
      JAVA不吃辣椒
      01-21
      比如想查username不为‘admin’的记录
      在云函数端要写成:
            const wherec = {username: db.command.neq('admin')}
            let res = await db.collection(event.data.collectionName).where(wherec).get()
      这里wherec我不想在云函数端写死,而希望在小程序端以参数形式传给云函数。
      在查询的时候db.command总是要作用于where的条件,二者有很大的关系。
      事实上,db.command应该是参数的一部分
      01-21
      回复
    • 就在那里
      就在那里
      01-21回复JAVA不吃辣椒
      你可以先把云函数定义好,然后前端通过传递不同的参数来触发不同的云函数操作,比如前端传递neq属性过来,云函数就拼接wherec=username:db.command.neq('admin)进行请求数据。甚至可以username,neq,admin三个一起传递给云函数,然后云函数拼接wherec=username:db.command.neq('admin)
      01-21
      回复
    • JAVA不吃辣椒
      JAVA不吃辣椒
      01-22回复就在那里
      有没有办法把拼接的过程放在小程序端完成,云函数只接收wherec一个参数,也就是说:
      在云函数端只用一条查询语句(只接收wherec一个参数,不用再对参数进行分支判断),通过改变参数的方法(或者其它方法),适配所有前端传过来的查询。
      01-22
      回复
    • 就在那里
      就在那里
      01-22回复JAVA不吃辣椒
      你是想写一个通用的云函数吗?你说的这种做法我没试过,不知道可不可行
      01-22
      回复
    • JAVA不吃辣椒
      JAVA不吃辣椒
      01-22回复就在那里
      对,想让云函数代码量最少,业务逻辑代码,查询条件组装,都写在小程序端
      01-22
      回复
    查看更多(2)
登录 后发表内容
问题标签