MongoDB按通配符密钥

时间:2015-05-18 21:28:23

标签: mongodb count aggregation-framework

我有1个包含以下文件的集合

{
  _id: '1234',
  __extract: {
     flavor: 'apple',
     color: 'green'
  }
}

{
  _id: '1235',
  __extract: {
     flavor: 'apple',
     color: 'green'
  }
}

{
  _id: '1236',
  __extract: {
     flavor: 'mint',
     color: 'green'
  }
}

{
  _id: '1237',
  __extract: {
     flavor: 'mint',
     color: 'blue'
  }
}

{
  _id: '1238',
  __extract: {
     flavor: 'mint',
     color: 'blue'
  }
}

我对聚合的期望是以下结果:

[
  {
    _id: 'flavor',
   results: [
     {
       _id: 'apple',
       count: 2
     },
     {
       _id: 'mint',
       count: 3
     },
   ]
  },
  {
    _id: 'color',
   results: [
     {
       _id: 'green',
       count: 3
     },
     {
       _id: 'blue',
       count: 2
     },
   ]
  },
]

到目前为止我所拥有的一切都是风味,但我甚至没有“味道”。在结果中,我只有不同的风格和不同的计数,我按$__extract.flavor分组,并有一个名为count的字段,使用$sum: 1,如下所示:

$group:
    _id: '$__index.flavor'
    count:
      $sum: 1

是否可以不进行多次聚合调用?

0 个答案:

没有答案