收藏
回答

云函数怎么同时聚合匹配多种状态的字段?

比如数据库中字段 state 有 1,2,3,4,5 五种状态,我想聚合 state=1或5 的所有结果,应该怎么写?

match,$.not 都尝试过,但未果。

请教下具体应该怎么写?

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

2 个回答

  • 卢索
    卢索
    2019-09-02

    先用 $.in判断后增加一个字段,然后下一步用这个字段筛选。参考代码:

    .addFields({

    matched: $.in(['$status', [0, 2, 3, 4]])

    })

    .match({

    matched: true

    })


    2019-09-02
    赞同
    回复 1
    • 1_4.0
      1_4.0
      2019-09-02
      感觉你这个是正确的,多谢
      2019-09-02
      回复
  • 老张
    老张
    2019-08-29

    aggregate.group({_id:"$state",docs:$.push(...)})

    2019-08-29
    赞同
    回复 3
    • 1_4.0
      1_4.0
      2019-08-29
      这种写法是把所有数据按state字段重新分配吧,我想要的是state某2个状态的结果
      2019-08-29
      回复
    • 老张
      老张
      2019-08-30回复1_4.0
      id是以状态区分,你再加一步match,state=2
      2019-08-30
      回复
    • 1_4.0
      1_4.0
      2019-08-30回复老张
      match匹配state=1时我会,但是同时获取state=1或者2时不会写。目前用了一种变通的方法来实现,多加了一个字段
      2019-08-30
      回复
登录 后发表内容
问题标签