猫鼬总结具有相同别名的子文档数组元素

问题描述 投票:1回答:1

我有这样的文件:

  _id:'someId',
  sales: 
     [
      {
       _id:'111',
       alias:'xxx',
       amount:500,
       name: Apple, //items with same alias always have same name and quantity
       quantity:2

     },
     {
       _id:'222',
       alias:'abc',
       amount:100,
       name: Orange,
       quantity:14
     },
     {
      _id:'333',
      alias:'xxx',
      amount:300,
      name: Apple, //items with same alias always have same name and quantity
      quantity:2
     }
    ]

[[alias字段在这里将项目/文档看起来具有相同的别名(即,被“嵌入”为与已累加的总金额相同的别名)。”>我需要以某种方式显示某种报告,以使那些具有相同别名的元素应显示为

ONE

,而其他不共享相同别名的元素应保持原样。示例,对于上面的示例文档,我需要这样的输出

[ { alias:'xxx', amount:800 }, { alias:'abc', amount:100 } ]

我尝试过的东西

MyShop.aggregate([ {$group:{ _id: "$_id", sales:{$last :"$sales"} }, {$project:{ "sales.amount":1 }} } ])

无论别名如何,它都显示为“列表”。如何实现基于别名的汇总金额?

我有一个像这样的文档:_id:'someId',销售额:[{_id:'111',别名:'xxx',数量:500,名称:Apple,//具有相同别名的商品始终具有相同的名称,并且...

mongodb mongoose aggregation-framework q
1个回答
1
投票
您可以在下面的聚合中使用
© www.soinside.com 2019 - 2024. All rights reserved.