收藏
回答

云开发数据库聚合函数match+group没有筛选的效果(match不生效)?

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug aggregate().match.group() 工具 7.0.4 2.9.0

不用聚合函数的话使用where是正常的


用了聚合函数match没有效果,把所有结果都查出来分组了


麻烦看看是什么问题!


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

5 个回答

  • Tien!
    Tien!
    2020-04-27

    看你代码里写的是:

    _.gte(startDate)
    

    按照官方文档的写法,_和$一般是这么赋值的

    const _ = db.command
    const $ = _.aggregate
    

    槽点来了:云开发有两套比较操作符

    “查询·比较操作符”——Command.gte(value: any): Command

    “聚合操作符号”->“比较操作符”——AggregateCommand.gte(value: Expression[]): Object

    我今天碰到了相似的情况,从原来不用聚合的需求,改成一个聚合的查询,然后沿用旧的比较操作符怎么也不生效,而其他match条件都没问题。各种研究之后发现把_.gt换成$.gt就能解决。

    2020-04-27
    有用 1
    回复
  • move
    move
    2019-10-30

    你查询写错了呗。

    2019-10-30
    有用 1
    回复 8
    • SOME CALL IT MAGIC
      SOME CALL IT MAGIC
      2019-10-31
      不是,把match里的条件删了就可以
      2019-10-31
      回复
    • move
      move
      2019-10-31回复SOME CALL IT MAGIC
      时间不能这么查询,你用错了
      2019-10-31
      回复
    • move
      move
      2019-10-31回复SOME CALL IT MAGIC
      2019-10-31
      回复
    • move
      move
      2019-10-31回复SOME CALL IT MAGIC
      使用聚合函数时,要使用时间撮来查询,看看我的截图吧。
      2019-10-31
      回复
    • move
      move
      2019-10-31回复SOME CALL IT MAGIC
      遇见聚合查询时,时间字段要根据时间撮来查询。普通查询没问题
      2019-10-31
      回复
    查看更多(3)
  • 董寅良Dyl
    董寅良Dyl
    2020-02-12

    兄弟,我有个跟你类似的情况,然后我发现在match里用聚合操作符管用,但是用db.command就不管用,跟文档写的就不一样

    2020-02-12
    有用
    回复
  • SOME CALL IT MAGIC
    SOME CALL IT MAGIC
    2019-10-25

    对了在2.8.1是不生效在2.9.0是报错

    Error: errCode: -501007 invalid parameters | errMsg: [InvalidParameter] Check request parameter fail. Please check your request, but if the problem cannot be solved, contact us.

    2019-10-25
    有用
    回复 1
    • SOME CALL IT MAGIC
      SOME CALL IT MAGIC
      2019-10-28
      官方就没人解决下吗?
      2019-10-28
      回复
  • 王磊
    王磊
    2019-10-25

    group 里面的id 换个字段试试

    2019-10-25
    有用
    回复 1
登录 后发表内容
问题标签