收藏
回答

同样的命令客户端和云函数查询结果不一样,云函数查的结果是全部数据,这是为什么?

 同样的命令客户端和云函数查询结果不一样,客户端查出来是筛选的数据,云函数查的结果是全部数据,这是为什么?如果是传2个查询的条件在云函数里拼接 那查出来结果是一样的,但如果在客户端拼接好传的话查的就是全部数据。有大神帮我看看吗

var mengpai = ['花果山']

    var dengji = ['175']

    var wh = []

    wh.push($.in(['$mengpai', mengpai]))

    wh.push($.in(['$dengji', dengji]))

    db.collection('accounts').aggregate().match(_.expr($.and(wh)))

      .end()

      .then(res => console.log('本地调用成功', res))

      .catch(err => console.error(err))

    wx.cloud.callFunction({

      name: 'accountQuery',

      data: {

       wh:wh

      }

    }).then(res => {

      console.log('云函数成功', res)

    }).catch(res => {

      console.log('失败', res)

    })

云函数

  // let mengpai = event.mengpai

  // let dengji = event.dengji

  // var wh=[]

  //  wh.push($.in(['$mengpai', mengpai]))

  //   wh.push($.in(['$dengji', dengji]))

  let wh = event.wh

  return await db.collection('accounts').aggregate().match(_.expr($.and(wh)))

    .end()

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

2 个回答

  • dreamhunter
    dreamhunter
    2021-04-25

    云函数是管理员权限,获取全部数据。

    小程序端看用户权限,看权限设置

    2021-04-25
    有用
    回复 5
    • A不醉
      A不醉
      2021-04-25
      这个我只知道 但我加了查询条件了  我只查 张3 小程序端只给了张3 但云函数把李4也查出来了  条件是一样的 这总不是权限问题吧
      2021-04-25
      回复
    • dreamhunter
      dreamhunter
      2021-04-25回复A不醉
      你云函数查询条件写了张3的话,还返回李4。说明你查询写错了
      2021-04-25
      回复
    • A不醉
      A不醉
      2021-04-25回复dreamhunter
      一样的代码   条件1 条件2  小程序端拼接成 wh=条件1+条件2 上传wh给云函数查询得到全部数据   但是 我小程序直接上传 条件1 条件2给云函数 云函数里拼接 wh=条件1+条件2  得到正确结果 一样的代码到云端命令行查询 也能得到正确结果
      2021-04-25
      回复
    • 笑看人生
      笑看人生
      2022-07-10回复A不醉
      我是一样的情况
      2022-07-10
      回复
    • 一休
      一休
      2022-07-12
      请问解决了没?我也遇到了同样的问题
      2022-07-12
      回复
  • cutemurphy
    cutemurphy
    2021-04-24

    权限不一样·

    2021-04-24
    有用
    回复 1
    • A不醉
      A不醉
      2021-04-25
      应该不是权限吧 在小程序端拼接好了查询条件传一个参数 云函数查出来就是全部数据 但如果小程序传2个条件 放到云函数里面做拼接 查出来就对了
      2021-04-25
      回复
登录 后发表内容