繁体   English   中英

MongoDB:按组聚合后按唯一值计数

[英]MongoDB: Count by unique value after aggregate by group

我已经按组计算了唯一值这是示例数据

[
   {
     iphone: iphone6,
     name: Tom
   },
   {
     iphone:iphone7,
     name: Tom
   },
   {
     iphone:iphone6,
     name: Joe
   },
   {
     iphone:iphoneX,
     name: Joe
   }
]

我想通过显示如下进行分组:

[
   {
     _id:iphone6,
     people:[Tom,Joe]
   },
   {
     _id:iphone7,
     people:[Tom]
   },
   {
     _id:iphoneX,
     people:[Joe]
   }
]

我在使用 $group 时遇到问题。 我怎样才能做到这一点?

  1. $group :按iphone$push name分组到people数组字段。
  2. $sort (可选):按_id升序排序。
db.collection.aggregate([
  {
    $group: {
      _id: "$iphone",
      people: {
        $push: "$name"
      }
    }
  },
  {
    $sort: {
      _id: 1
    }
  }
])

示例 Mongo Playground

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM