收藏
回答

如何用聚合筛选出对象数组中指定值的所有数据?

这是一个商城里面入驻了很多店铺,每个店铺都会上架不同的商品,并把商品存在st_goods这个对象数组中。现在我想的是通过聚合的方法,将所有店铺上架的“休闲娱乐”的商品都给筛选出来,并返回到一个数组中,这个可以实现的吗?

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

1 个回答

  • o0o有脾气的酸奶
    o0o有脾气的酸奶
    2020-07-25
    db.collection('exams').aggregate()
    .unwind('$st_goods')
    .match({
      'st_goods.goods_class':'休闲娱乐'
    })
    .end()
    

    若认为该回答有用,给回答者点个[ 有用 ],让答案帮助更多的人

    2020-07-25
    有用 1
    回复 2
    • 百晓生
      百晓生
      2020-07-25
      哇,我发现你这个比我的简洁很多耶,谢谢大哥
      2020-07-25
      回复
    • 百晓生
      百晓生
      2020-07-25
      我也分享下我的方法,不过比较复杂一点,哈哈
          db.collection('store_users').aggregate()
          .unwind('$st_goods')
          .replaceRoot({
            newRoot: '$st_goods'
          })
          .match({
              goods_class:_.eq('休闲娱乐')
          })
          .end().then(res=>{
            console.log(res)
            this.setData({
              goods_foods:res.list
            })
          })
      2020-07-25
      回复
登录 后发表内容
问题标签