收藏
回答

如何操作云数据库将集合'班级'内的女生姓名按年龄分组输出?

如何操作数据库将取班级内的女生按年龄分组输出?

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

3 个回答

  • 琳
    2019-11-14

    你这个就用group和push就行呀。

    前略

    .group({

        _id: {age:'$年龄'},

        students: $.push({_id: '$_id', name: '$姓名', gender: '$性别'}),

    }).project({

        age: '$_id.age',

        students: 1,

    })

    后略

    2019-11-14
    有用
    回复 1
    • z
      z
      2019-11-16
      谢谢大神
      2019-11-16
      回复
  • uly
    uly
    2019-11-04

    聚合可满足你的需求,了解一下:

    https://developers.weixin.qq.com/miniprogram/dev/wxcloud/reference-server-api/database/collection.aggregate.html


    2019-11-04
    有用
    回复 8
    • z
      z
      2019-11-04
      我写了这样的代码,但是where跟聚合不能联用啊应该怎么改
            result = await db.collection('banji').where({
              sex: '女'
            }).get().aggregate()
              .group({
                _id: '$age',
                count: $.sum(1),
              }).end()
      2019-11-04
      回复
    • uly
      uly
      2019-11-04回复z
      https://developers.weixin.qq.com/miniprogram/dev/wxcloud/reference-server-api/database/aggregation/stages/match.html
      2019-11-04
      回复
    • z
      z
      2019-11-04回复uly
      哦哦,还有一个问题,我发现用group聚合push的字段按字段放在一个数组里了,但是bucket方法又必须指定boundaries,而数据本身是动态的,boundaries只能静态分类啊
      2019-11-04
      回复
    • uly
      uly
      2019-11-04回复z
      你这个只用group就行了吧?
      2019-11-04
      回复
    • z
      z
      2019-11-04回复uly
      group输出的时候年龄和名字是分别放在两个数组里的,不是一个年龄对应几个人这样子啊
      2019-11-04
      回复
    查看更多(3)
  • 老张
    老张
    2019-11-04

    不应该知道你的表结构先吗?

    2019-11-04
    有用
    回复 1
    • z
      z
      2019-11-04
      _id:
      姓名:
      性别:
      年龄:
      2019-11-04
      回复
登录 后发表内容
问题标签