收藏
回答

云函数操作数据库删除总是报错?

这是云函数runDB.js中的remove()代码:

这是外部的index.js调用云函数runDB中删除数据库中记录的代码:

运行后,微信开发者一直报这个错误(collection remove fail, param query cannot be empty):

已经仔细检查了N遍,所有参数都是准确的!

报错提示是 查询参数不能为空,我写了查询条件了啊!{submitDate: _.neq(getDate())},

难道是云函数不能识别_.neq()这样的数据库查询比较操作符?怎么能让该查询条件通过识别呢?

我这个云函数runDB操作数据库增、改、查都成功运行,唯独这个删除总是报查询参数为空的错误!感觉还是和_.neq()有关系!


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

3 个回答

  • 困难
    困难
    2022-01-24

    _是要自己定义的,有在云函数里定义下划线是command吗?getDate是什么?打印一下condition,看看接收的是什么?


    2022-01-24
    有用
    回复 3
    • 中峰
      中峰
      2022-01-24
      在云函数里已经定义了command,看下图。getDate是获取年月日的函数,返回字符串。
      2022-01-24
      回复
    • 中峰
      中峰
      2022-01-24
      打印的condition是:{conditon:e},好像是_这个db command不能从外部透传到云函数中,所以导致报query param empty的错误。
      2022-01-24
      回复
    • 困难
      困难
      2022-01-24回复中峰
      我没这样传过,一般习惯分别把字段和条件传过去,类似这样
      2022-01-24
      回复
  • Mr.Zhao
    Mr.Zhao
    2022-01-24

    在云函数里面拼接条件,db.command传不过去

    2022-01-24
    有用
    回复 2
    • 中峰
      中峰
      2022-01-24
      就是说需要把{submitDate: _.neq(getDate())}这个查询条件写到我的这个云函数runDB的where里面去吗?
      2022-01-24
      回复
    • Mr.Zhao
      Mr.Zhao
      2022-01-24回复中峰
      是的,不能让小程序端传
      2022-01-24
      回复
  • 老张
    老张
    2022-01-24

    “_”不支持透传过去,需要在云函数里重新赋值。

    2022-01-24
    有用
    回复 2
    • 中峰
      中峰
      2022-01-24
      是把{submitDate: _.neq(getDate())}这个查询条件写到我的这个云函数runDB的where里面去吗?
      2022-01-24
      回复
    • 老张
      老张
      2022-01-24回复中峰
      event.condition不能直接透传,在云函数里重新拼装。
      2022-01-24
      回复
登录 后发表内容
问题标签